diff --git a/3rdparty/boost/boost/any.hpp b/3rdparty/boost/boost/any.hpp index 9f6b313274..9c2789cba4 100644 --- a/3rdparty/boost/boost/any.hpp +++ b/3rdparty/boost/boost/any.hpp @@ -12,9 +12,7 @@ // with features contributed and bugs found by // Antony Polukhin, Ed Brey, Mark Rodgers, // Peter Dimov, and James Curran -// when: July 2001, April 2013 - May 2013 - -#include +// when: July 2001, April 2013 - 2020 #include #include @@ -30,7 +28,7 @@ #include #include #include -#include +#include namespace boost { @@ -38,7 +36,7 @@ namespace boost { public: // structors - any() BOOST_NOEXCEPT + BOOST_CONSTEXPR any() BOOST_NOEXCEPT : content(0) { } @@ -83,7 +81,9 @@ namespace boost any & swap(any & rhs) BOOST_NOEXCEPT { - std::swap(content, rhs.content); + placeholder* tmp = content; + content = rhs.content; + rhs.content = tmp; return *this; } @@ -98,7 +98,7 @@ namespace boost any & operator=(any rhs) { - any(rhs).swap(*this); + rhs.swap(*this); return *this; } @@ -109,7 +109,7 @@ namespace boost return *this; } - // move assignement + // move assignment any & operator=(any&& rhs) BOOST_NOEXCEPT { rhs.swap(*this); @@ -149,7 +149,7 @@ namespace boost public: // types (public so any_cast can be non-friend) #endif - class placeholder + class BOOST_SYMBOL_VISIBLE placeholder { public: // structors @@ -166,7 +166,11 @@ namespace boost }; template - class holder : public placeholder + class holder +#ifndef BOOST_NO_CXX11_FINAL + final +#endif + : public placeholder { public: // structors @@ -183,12 +187,12 @@ namespace boost #endif public: // queries - virtual const boost::typeindex::type_info& type() const BOOST_NOEXCEPT + const boost::typeindex::type_info& type() const BOOST_NOEXCEPT BOOST_OVERRIDE { return boost::typeindex::type_id().type_info(); } - virtual placeholder * clone() const + placeholder * clone() const BOOST_OVERRIDE { return new holder(held); } @@ -234,7 +238,7 @@ namespace boost #endif { public: - virtual const char * what() const BOOST_NOEXCEPT_OR_NOTHROW + const char * what() const BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE { return "boost::bad_any_cast: " "failed conversion using boost::any_cast"; @@ -271,8 +275,8 @@ namespace boost // `ValueType` is not a reference. Example: // `static_cast(*result);` // which is equal to `std::string(*result);` - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_reference, + typedef BOOST_DEDUCED_TYPENAME boost::conditional< + boost::is_reference::value, ValueType, BOOST_DEDUCED_TYPENAME boost::add_reference::type >::type ref_type; @@ -329,6 +333,7 @@ namespace boost } // Copyright Kevlin Henney, 2000, 2001, 2002. All rights reserved. +// Copyright Antony Polukhin, 2013-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at diff --git a/3rdparty/boost/boost/array.hpp b/3rdparty/boost/boost/array.hpp index 210c072125..a32d1e99c6 100644 --- a/3rdparty/boost/boost/array.hpp +++ b/3rdparty/boost/boost/array.hpp @@ -41,13 +41,12 @@ #endif #include +#include #include #include #include #include -// Handles broken standard libraries better than -#include #include #include @@ -183,7 +182,7 @@ namespace boost { // check range (may be private because it is static) static BOOST_CONSTEXPR bool rangecheck (size_type i) { - return i > size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true; + return i >= size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true; } }; diff --git a/3rdparty/boost/boost/assert/source_location.hpp b/3rdparty/boost/boost/assert/source_location.hpp new file mode 100644 index 0000000000..a85e679526 --- /dev/null +++ b/3rdparty/boost/boost/assert/source_location.hpp @@ -0,0 +1,93 @@ +#ifndef BOOST_ASSERT_SOURCE_LOCATION_HPP_INCLUDED +#define BOOST_ASSERT_SOURCE_LOCATION_HPP_INCLUDED + +// http://www.boost.org/libs/assert +// +// Copyright 2019 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// http://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include +#include + +namespace boost +{ + +struct source_location +{ +private: + + char const * file_; + char const * function_; + boost::uint_least32_t line_; + boost::uint_least32_t column_; + +public: + + BOOST_CONSTEXPR source_location() BOOST_NOEXCEPT: file_( "(unknown)" ), function_( "(unknown)" ), line_( 0 ), column_( 0 ) + { + } + + BOOST_CONSTEXPR source_location( char const * file, boost::uint_least32_t ln, char const * function, boost::uint_least32_t col = 0 ) BOOST_NOEXCEPT: file_( file ), function_( function ), line_( ln ), column_( col ) + { + } + + BOOST_CONSTEXPR char const * file_name() const BOOST_NOEXCEPT + { + return file_; + } + + BOOST_CONSTEXPR char const * function_name() const BOOST_NOEXCEPT + { + return function_; + } + + BOOST_CONSTEXPR boost::uint_least32_t line() const BOOST_NOEXCEPT + { + return line_; + } + + BOOST_CONSTEXPR boost::uint_least32_t column() const BOOST_NOEXCEPT + { + return column_; + } +}; + +template std::basic_ostream & operator<<( std::basic_ostream & os, source_location const & loc ) +{ + os.width( 0 ); + + if( loc.line() == 0 ) + { + os << "(unknown source location)"; + } + else + { + os << loc.file_name() << ':' << loc.line(); + + if( loc.column() ) + { + os << ':' << loc.column(); + } + + os << ": in function '" << loc.function_name() << '\''; + } + + return os; +} + +} // namespace boost + +#if defined( BOOST_DISABLE_CURRENT_LOCATION ) + +# define BOOST_CURRENT_LOCATION ::boost::source_location() + +#else + +# define BOOST_CURRENT_LOCATION ::boost::source_location(__FILE__, __LINE__, BOOST_CURRENT_FUNCTION) + +#endif + +#endif // #ifndef BOOST_ASSERT_SOURCE_LOCATION_HPP_INCLUDED diff --git a/3rdparty/boost/boost/bind.hpp b/3rdparty/boost/boost/bind.hpp deleted file mode 100644 index 450120c7a7..0000000000 --- a/3rdparty/boost/boost/bind.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#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) 2009, 2015 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 - -#ifndef BOOST_BIND_NO_PLACEHOLDERS - -#if defined(BOOST_CLANG) -# pragma clang diagnostic push -# if __has_warning("-Wheader-hygiene") -# pragma clang diagnostic ignored "-Wheader-hygiene" -# endif -#endif - -using namespace boost::placeholders; - -#if defined(BOOST_CLANG) -# pragma clang diagnostic pop -#endif - -#endif // #ifndef BOOST_BIND_NO_PLACEHOLDERS - -#endif // #ifndef BOOST_BIND_HPP_INCLUDED diff --git a/3rdparty/boost/boost/bind/bind.hpp b/3rdparty/boost/boost/bind/bind.hpp index 4cedc5e9a4..2301234c33 100644 --- a/3rdparty/boost/boost/bind/bind.hpp +++ b/3rdparty/boost/boost/bind/bind.hpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -38,7 +39,7 @@ // Borland-specific bug, visit_each() silently fails to produce code -#if defined(__BORLANDC__) +#if defined(BOOST_BORLANDC) # define BOOST_BIND_VISIT_EACH boost::visit_each #else # define BOOST_BIND_VISIT_EACH visit_each @@ -59,29 +60,6 @@ template class weak_ptr; namespace _bi // implementation details { -// result_traits - -template struct result_traits -{ - typedef R type; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - -struct unspecified {}; - -template struct result_traits -{ - typedef typename F::result_type type; -}; - -template struct result_traits< unspecified, reference_wrapper > -{ - typedef typename F::result_type type; -}; - -#endif - // ref_compare template bool ref_compare( T const & a, T const & b, long ) @@ -1422,7 +1400,7 @@ public: template void accept( V & v ) const { -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) +#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) using boost::visit_each; #endif @@ -1559,7 +1537,7 @@ namespace _bi #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530) -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) ) +#if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x582) ) template struct add_value { @@ -1811,7 +1789,7 @@ BOOST_BIND_OPERATOR( >=, greater_equal ) // visit_each, ADL -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \ +#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) \ && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) template void visit_each( V & v, value const & t, int ) @@ -1831,7 +1809,7 @@ template void visit_each( V & v, bind_t void visit_each( V & v, _bi::value const & t, int ) @@ -2136,7 +2114,7 @@ template +# include # endif #undef BOOST_BIND_MF_NAME #undef BOOST_BIND_MF_CC #undef BOOST_BIND_MF_NOEXCEPT -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_BIND_MF_NAME(X) X##_cdecl #define BOOST_BIND_MF_CC __cdecl @@ -2212,7 +2191,7 @@ template _bi::bind_t< R, _mfi::dm, typename _bi::list_av_1::type > diff --git a/3rdparty/boost/boost/bind/bind_mf2_cc.hpp b/3rdparty/boost/boost/bind/bind_mf2_cc.hpp index 66476bc19d..be20b1d907 100644 --- a/3rdparty/boost/boost/bind/bind_mf2_cc.hpp +++ b/3rdparty/boost/boost/bind/bind_mf2_cc.hpp @@ -18,7 +18,7 @@ template _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (), A1 a1) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1) { typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; typedef typename _bi::list_av_1::type list_type; @@ -28,7 +28,7 @@ template _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) () const, A1 a1) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1) { typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; typedef typename _bi::list_av_1::type list_type; @@ -41,7 +41,7 @@ template _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) { typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; typedef typename _bi::list_av_2::type list_type; @@ -52,7 +52,7 @@ template _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) { typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; typedef typename _bi::list_av_2::type list_type; @@ -65,7 +65,7 @@ template _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) { typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; typedef typename _bi::list_av_3::type list_type; @@ -76,7 +76,7 @@ template _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) { typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; typedef typename _bi::list_av_3::type list_type; @@ -89,7 +89,7 @@ template _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) { typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; typedef typename _bi::list_av_4::type list_type; @@ -100,7 +100,7 @@ template _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) { typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; typedef typename _bi::list_av_4::type list_type; @@ -113,7 +113,7 @@ template _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; typedef typename _bi::list_av_5::type list_type; @@ -124,7 +124,7 @@ template _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; typedef typename _bi::list_av_5::type list_type; @@ -137,7 +137,7 @@ template _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; typedef typename _bi::list_av_6::type list_type; @@ -148,7 +148,7 @@ template _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(boost::type, 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) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; typedef typename _bi::list_av_6::type list_type; @@ -161,7 +161,7 @@ template _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(boost::type, 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) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; typedef typename _bi::list_av_7::type list_type; @@ -172,7 +172,7 @@ template _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(boost::type, 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) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; typedef typename _bi::list_av_7::type list_type; @@ -185,7 +185,7 @@ template _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(boost::type, 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) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; typedef typename _bi::list_av_8::type list_type; @@ -196,7 +196,7 @@ template _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(boost::type, 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) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; typedef typename _bi::list_av_8::type list_type; @@ -209,7 +209,7 @@ template _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(boost::type, 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) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_MF_NOEXCEPT, 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) F; typedef typename _bi::list_av_9::type list_type; @@ -220,7 +220,7 @@ template _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(boost::type, 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) + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const BOOST_BIND_MF_NOEXCEPT, 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) F; typedef typename _bi::list_av_9::type list_type; diff --git a/3rdparty/boost/boost/bind/bind_template.hpp b/3rdparty/boost/boost/bind/bind_template.hpp index 411d20c74e..212ced7fa7 100644 --- a/3rdparty/boost/boost/bind/bind_template.hpp +++ b/3rdparty/boost/boost/bind/bind_template.hpp @@ -325,7 +325,7 @@ template void accept(V & v) const { -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) +#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) using boost::visit_each; diff --git a/3rdparty/boost/boost/bind/detail/result_traits.hpp b/3rdparty/boost/boost/bind/detail/result_traits.hpp new file mode 100644 index 0000000000..e6b8a44e63 --- /dev/null +++ b/3rdparty/boost/boost/bind/detail/result_traits.hpp @@ -0,0 +1,154 @@ +#ifndef BOOST_BIND_DETAIL_RESULT_TRAITS_HPP_INCLUDED +#define BOOST_BIND_DETAIL_RESULT_TRAITS_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// bind/detail/result_traits.hpp +// +// boost/bind.hpp support header, return type deduction +// +// Copyright 2006, 2020 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. +// + +#if defined(_MSVC_LANG) && _MSVC_LANG >= 17 +#include +#endif + +namespace boost +{ + +namespace _bi +{ + +template struct result_traits +{ + typedef R type; +}; + +struct unspecified {}; + +template struct result_traits +{ + typedef typename F::result_type type; +}; + +template struct result_traits< unspecified, reference_wrapper > +{ + typedef typename F::result_type type; +}; + +#if defined(_MSVC_LANG) && _MSVC_LANG >= 17 + +template struct result_traits< unspecified, std::plus > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::minus > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::multiplies > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::divides > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::modulus > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::negate > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::equal_to > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::not_equal_to > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::greater > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::less > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::greater_equal > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::less_equal > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::logical_and > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::logical_or > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::logical_not > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::bit_and > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::bit_or > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::bit_xor > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::bit_not > +{ + typedef T type; +}; + +#endif + +} // namespace _bi + +} // namespace boost + +#endif // #ifndef BOOST_BIND_DETAIL_RESULT_TRAITS_HPP_INCLUDED diff --git a/3rdparty/boost/boost/bind/mem_fn.hpp b/3rdparty/boost/boost/bind/mem_fn.hpp index 956e7d8885..5afb0a1a89 100644 --- a/3rdparty/boost/boost/bind/mem_fn.hpp +++ b/3rdparty/boost/boost/bind/mem_fn.hpp @@ -49,7 +49,7 @@ template struct mf #undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_NAME -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl #define BOOST_MEM_FN_CC __cdecl @@ -61,7 +61,7 @@ template struct mf #endif -#ifdef BOOST_MEM_FN_ENABLE_STDCALL +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall #define BOOST_MEM_FN_CC __stdcall @@ -73,7 +73,7 @@ template struct mf #endif -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall #define BOOST_MEM_FN_CC __fastcall @@ -102,7 +102,7 @@ template<> struct mf #undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_NAME -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl #define BOOST_MEM_FN_CC __cdecl @@ -155,7 +155,7 @@ template<> struct mf #undef BOOST_MEM_FN_NAME2 #undef BOOST_MEM_FN_CC -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_cdecl #define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl @@ -217,7 +217,7 @@ namespace _mfi #undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_NAME -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_cdecl #define BOOST_MEM_FN_CC __cdecl @@ -229,7 +229,7 @@ namespace _mfi #endif -#ifdef BOOST_MEM_FN_ENABLE_STDCALL +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_stdcall #define BOOST_MEM_FN_CC __stdcall @@ -241,7 +241,7 @@ namespace _mfi #endif -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_fastcall #define BOOST_MEM_FN_CC __fastcall @@ -264,45 +264,59 @@ namespace _mfi #define BOOST_MEM_FN_NAME(X) X #define BOOST_MEM_FN_CC +#define BOOST_MEM_FN_NOEXCEPT #include +#if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED ) +# undef BOOST_MEM_FN_NOEXCEPT +# define BOOST_MEM_FN_NOEXCEPT noexcept +# include +#endif + #undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_cdecl #define BOOST_MEM_FN_CC __cdecl +#define BOOST_MEM_FN_NOEXCEPT #include #undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT #endif -#ifdef BOOST_MEM_FN_ENABLE_STDCALL +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_stdcall #define BOOST_MEM_FN_CC __stdcall +#define BOOST_MEM_FN_NOEXCEPT #include #undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT #endif -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_fastcall #define BOOST_MEM_FN_CC __fastcall +#define BOOST_MEM_FN_NOEXCEPT #include #undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT #endif diff --git a/3rdparty/boost/boost/bind/mem_fn_cc.hpp b/3rdparty/boost/boost/bind/mem_fn_cc.hpp index 8b6ea0ba13..03e38300a5 100644 --- a/3rdparty/boost/boost/bind/mem_fn_cc.hpp +++ b/3rdparty/boost/boost/bind/mem_fn_cc.hpp @@ -12,92 +12,92 @@ // See http://www.boost.org/libs/bind/mem_fn.html for documentation. // -template _mfi::BOOST_MEM_FN_NAME(mf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) ()) +template _mfi::BOOST_MEM_FN_NAME(mf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf0)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () const) +template _mfi::BOOST_MEM_FN_NAME(cmf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf0)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1)) +template _mfi::BOOST_MEM_FN_NAME(mf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf1)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const) +template _mfi::BOOST_MEM_FN_NAME(cmf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf1)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2)) +template _mfi::BOOST_MEM_FN_NAME(mf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf2)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const) +template _mfi::BOOST_MEM_FN_NAME(cmf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf2)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3)) +template _mfi::BOOST_MEM_FN_NAME(mf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf3)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const) +template _mfi::BOOST_MEM_FN_NAME(cmf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf3)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4)) +template _mfi::BOOST_MEM_FN_NAME(mf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf4)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const) +template _mfi::BOOST_MEM_FN_NAME(cmf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf4)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5)) +template _mfi::BOOST_MEM_FN_NAME(mf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf5)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const) +template _mfi::BOOST_MEM_FN_NAME(cmf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf5)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6)) +template _mfi::BOOST_MEM_FN_NAME(mf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf6)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const) +template _mfi::BOOST_MEM_FN_NAME(cmf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf6)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7)) +template _mfi::BOOST_MEM_FN_NAME(mf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf7)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const) +template _mfi::BOOST_MEM_FN_NAME(cmf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf7)(f); } -template _mfi::BOOST_MEM_FN_NAME(mf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8)) +template _mfi::BOOST_MEM_FN_NAME(mf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(mf8)(f); } -template _mfi::BOOST_MEM_FN_NAME(cmf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const) +template _mfi::BOOST_MEM_FN_NAME(cmf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const BOOST_MEM_FN_NOEXCEPT) { return _mfi::BOOST_MEM_FN_NAME(cmf8)(f); } diff --git a/3rdparty/boost/boost/bind/placeholders.hpp b/3rdparty/boost/boost/bind/placeholders.hpp index b819ef4c46..5e4b96d8d5 100644 --- a/3rdparty/boost/boost/bind/placeholders.hpp +++ b/3rdparty/boost/boost/bind/placeholders.hpp @@ -29,7 +29,7 @@ namespace boost namespace placeholders { -#if defined(__BORLANDC__) || defined(__GNUC__) && (__GNUC__ < 4) +#if defined(BOOST_BORLANDC) || defined(__GNUC__) && (__GNUC__ < 4) inline boost::arg<1> _1() { return boost::arg<1>(); } inline boost::arg<2> _2() { return boost::arg<2>(); } @@ -41,6 +41,18 @@ inline boost::arg<7> _7() { return boost::arg<7>(); } inline boost::arg<8> _8() { return boost::arg<8>(); } inline boost::arg<9> _9() { return boost::arg<9>(); } +#elif !defined(BOOST_NO_CXX17_INLINE_VARIABLES) + +BOOST_INLINE_CONSTEXPR boost::arg<1> _1; +BOOST_INLINE_CONSTEXPR boost::arg<2> _2; +BOOST_INLINE_CONSTEXPR boost::arg<3> _3; +BOOST_INLINE_CONSTEXPR boost::arg<4> _4; +BOOST_INLINE_CONSTEXPR boost::arg<5> _5; +BOOST_INLINE_CONSTEXPR boost::arg<6> _6; +BOOST_INLINE_CONSTEXPR boost::arg<7> _7; +BOOST_INLINE_CONSTEXPR boost::arg<8> _8; +BOOST_INLINE_CONSTEXPR boost::arg<9> _9; + #else BOOST_STATIC_CONSTEXPR boost::arg<1> _1; diff --git a/3rdparty/boost/boost/bind/storage.hpp b/3rdparty/boost/boost/bind/storage.hpp index be490b0f59..5d84027b05 100644 --- a/3rdparty/boost/boost/bind/storage.hpp +++ b/3rdparty/boost/boost/bind/storage.hpp @@ -49,7 +49,7 @@ template struct storage1 A1 a1_; }; -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ ) +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_BORLANDC ) template struct storage1< boost::arg > { diff --git a/3rdparty/boost/boost/blank.hpp b/3rdparty/boost/boost/blank.hpp index d0fe5abca5..918723ca94 100644 --- a/3rdparty/boost/boost/blank.hpp +++ b/3rdparty/boost/boost/blank.hpp @@ -20,7 +20,7 @@ #include "boost/detail/templated_streams.hpp" #endif // BOOST_NO_IOSTREAM -#include "boost/mpl/bool.hpp" +#include "boost/type_traits/integral_constant.hpp" #include "boost/type_traits/is_empty.hpp" #include "boost/type_traits/is_pod.hpp" #include "boost/type_traits/is_stateless.hpp" @@ -36,19 +36,19 @@ struct blank template <> struct is_pod< blank > - : mpl::true_ + : boost::true_type { }; template <> struct is_empty< blank > - : mpl::true_ + : boost::true_type { }; template <> struct is_stateless< blank > - : mpl::true_ + : boost::true_type { }; diff --git a/3rdparty/boost/boost/concept/assert.hpp b/3rdparty/boost/boost/concept/assert.hpp index cf98179522..e37350826f 100644 --- a/3rdparty/boost/boost/concept/assert.hpp +++ b/3rdparty/boost/boost/concept/assert.hpp @@ -5,7 +5,7 @@ # define BOOST_CONCEPT_ASSERT_DWA2006430_HPP # include -# include +# include // The old protocol used a constraints() member function in concept // checking classes. If the compiler supports SFINAE, we can detect @@ -29,7 +29,7 @@ # ifdef BOOST_MSVC # include -# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +# elif BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564)) # include # else # include diff --git a/3rdparty/boost/boost/concept/detail/general.hpp b/3rdparty/boost/boost/concept/detail/general.hpp index 525ea656c2..eeb08750f1 100644 --- a/3rdparty/boost/boost/concept/detail/general.hpp +++ b/3rdparty/boost/boost/concept/detail/general.hpp @@ -10,7 +10,7 @@ # ifdef BOOST_OLD_CONCEPT_SUPPORT # include -# include +# include # endif // This implementation works on Comeau and GCC, all the way back to @@ -49,8 +49,8 @@ struct constraint template struct requirement_ - : mpl::if_< - concepts::not_satisfied + : boost::conditional< + concepts::not_satisfied::value , constraint , requirement >::type diff --git a/3rdparty/boost/boost/concept/detail/has_constraints.hpp b/3rdparty/boost/boost/concept/detail/has_constraints.hpp index a309db3d88..dc2c20714e 100644 --- a/3rdparty/boost/boost/concept/detail/has_constraints.hpp +++ b/3rdparty/boost/boost/concept/detail/has_constraints.hpp @@ -4,8 +4,8 @@ #ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP # define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP -# include -# include +# include +# include # include namespace boost { namespace concepts { @@ -42,7 +42,7 @@ struct not_satisfied BOOST_STATIC_CONSTANT( bool , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) ); - typedef mpl::bool_ type; + typedef boost::integral_constant type; }; }} // namespace boost::concepts::detail diff --git a/3rdparty/boost/boost/concept/detail/msvc.hpp b/3rdparty/boost/boost/concept/detail/msvc.hpp index 078dd22330..933ac02a52 100644 --- a/3rdparty/boost/boost/concept/detail/msvc.hpp +++ b/3rdparty/boost/boost/concept/detail/msvc.hpp @@ -10,7 +10,7 @@ # ifdef BOOST_OLD_CONCEPT_SUPPORT # include -# include +# include # endif # ifdef BOOST_MSVC @@ -54,7 +54,7 @@ namespace detail template struct require - : mpl::if_c< + : boost::conditional< not_satisfied::value , detail::constraint # ifndef BOOST_NO_PARTIAL_SPECIALIZATION diff --git a/3rdparty/boost/boost/concept/usage.hpp b/3rdparty/boost/boost/concept/usage.hpp index e73370fb37..373de63a9d 100644 --- a/3rdparty/boost/boost/concept/usage.hpp +++ b/3rdparty/boost/boost/concept/usage.hpp @@ -5,7 +5,7 @@ # define BOOST_CONCEPT_USAGE_DWA2006919_HPP # include -# include +# include # include namespace boost { namespace concepts { diff --git a/3rdparty/boost/boost/concept_check.hpp b/3rdparty/boost/boost/concept_check.hpp index 25f118b643..abbadb76be 100644 --- a/3rdparty/boost/boost/concept_check.hpp +++ b/3rdparty/boost/boost/concept_check.hpp @@ -24,9 +24,9 @@ # include # include # include -# include -# include -# include +# include +# include +# include # include # include @@ -301,14 +301,14 @@ namespace boost BOOST_CONCEPT_USAGE(Generator) { test(is_void()); } private: - void test(boost::mpl::false_) + void test(boost::false_type) { // Do we really want a reference here? const Return& r = f(); ignore_unused_variable_warning(r); } - void test(boost::mpl::true_) + void test(boost::true_type) { f(); } @@ -321,22 +321,22 @@ namespace boost BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void()); } private: - void test(boost::mpl::false_) + void test(boost::false_type) { f(arg); // "priming the pump" this way keeps msvc6 happy (ICE) Return r = f(arg); ignore_unused_variable_warning(r); } - void test(boost::mpl::true_) + void test(boost::true_type) { f(arg); } #if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy construktor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // Declare a dummy constructor to make gcc happy. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a reference type. // (warning: non-static reference "const double& boost::UnaryFunction::arg" // in class without a constructor [-Wuninitialized]) UnaryFunction(); @@ -350,14 +350,14 @@ namespace boost { BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void()); } private: - void test(boost::mpl::false_) + void test(boost::false_type) { f(first,second); Return r = f(first, second); // require operator() (void)r; } - void test(boost::mpl::true_) + void test(boost::true_type) { f(first,second); } @@ -365,7 +365,7 @@ namespace boost #if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ && BOOST_WORKAROUND(__GNUC__, > 3))) // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a reference type. // (warning: non-static reference "const double& boost::BinaryFunction::arg" // in class without a constructor [-Wuninitialized]) BinaryFunction(); @@ -385,7 +385,7 @@ namespace boost #if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ && BOOST_WORKAROUND(__GNUC__, > 3))) // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a reference type. // (warning: non-static reference "const double& boost::UnaryPredicate::arg" // in class without a constructor [-Wuninitialized]) UnaryPredicate(); @@ -404,7 +404,7 @@ namespace boost #if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ && BOOST_WORKAROUND(__GNUC__, > 3))) // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a reference type. // (warning: non-static reference "const double& boost::BinaryPredicate::arg" // in class without a constructor [-Wuninitialized]) BinaryPredicate(); @@ -429,7 +429,7 @@ namespace boost #if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ && BOOST_WORKAROUND(__GNUC__, > 3))) // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. + // It seems the compiler can not generate a sensible constructor when this is instantiated with a reference type. // (warning: non-static reference "const double& boost::Const_BinaryPredicate::arg" // in class without a constructor [-Wuninitialized]) Const_BinaryPredicate(); @@ -734,8 +734,8 @@ namespace boost private: void const_constraints(const C& cc) { - const_reverse_iterator i = cc.rbegin(); - i = cc.rend(); + const_reverse_iterator _i = cc.rbegin(); + _i = cc.rend(); } C c; }; @@ -966,7 +966,7 @@ namespace boost { typedef typename C::key_type key_type; typedef typename C::value_type value_type; - BOOST_MPL_ASSERT((boost::is_same)); + BOOST_STATIC_ASSERT((boost::is_same::value)); } }; @@ -979,7 +979,7 @@ namespace boost typedef typename C::value_type value_type; typedef typename C::mapped_type mapped_type; typedef std::pair required_value_type; - BOOST_MPL_ASSERT((boost::is_same)); + BOOST_STATIC_ASSERT((boost::is_same::value)); } }; diff --git a/3rdparty/boost/boost/config/abi_prefix.hpp b/3rdparty/boost/boost/config/abi_prefix.hpp index 3b1347492c..bcdc26d9dc 100644 --- a/3rdparty/boost/boost/config/abi_prefix.hpp +++ b/3rdparty/boost/boost/config/abi_prefix.hpp @@ -19,7 +19,7 @@ # include BOOST_ABI_PREFIX #endif -#if defined( __BORLANDC__ ) +#if defined( BOOST_BORLANDC ) #pragma nopushoptwarn #endif diff --git a/3rdparty/boost/boost/config/abi_suffix.hpp b/3rdparty/boost/boost/config/abi_suffix.hpp index 939161662a..a1eb78db90 100644 --- a/3rdparty/boost/boost/config/abi_suffix.hpp +++ b/3rdparty/boost/boost/config/abi_suffix.hpp @@ -20,8 +20,6 @@ # include BOOST_ABI_SUFFIX #endif -#if defined( __BORLANDC__ ) +#if defined( BOOST_BORLANDC ) #pragma nopushoptwarn #endif - - diff --git a/3rdparty/boost/boost/config/auto_link.hpp b/3rdparty/boost/boost/config/auto_link.hpp index 271f837911..1ea6faa773 100644 --- a/3rdparty/boost/boost/config/auto_link.hpp +++ b/3rdparty/boost/boost/config/auto_link.hpp @@ -28,6 +28,9 @@ BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib, BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option. This is essentially the same as the default name-mangled version, but without the compiler name and version, or the Boost version. Just the build options. +BOOST_AUTO_LINK_SYSTEM: Specifies that we link to libraries built with the --layout=system option. + This is essentially the same as the non-name-mangled version, but with + the prefix to differentiate static and dll builds 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! @@ -48,6 +51,7 @@ BOOST_LIB_PREFIX + BOOST_LIB_ARCH_AND_MODEL_OPT "-" + BOOST_LIB_VERSION + + BOOST_LIB_SUFFIX These are defined as: @@ -75,6 +79,7 @@ BOOST_LIB_ARCH_AND_MODEL_OPT: The architecture and address model BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. +BOOST_LIB_SUFFIX: Static/import libraries extension (".lib", ".a") for the compiler. ***************************************************************************/ @@ -94,9 +99,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // Only include what follows for known and supported compilers: // #if defined(BOOST_MSVC) \ - || defined(__BORLANDC__) \ + || defined(BOOST_EMBTC_WINDOWS) \ + || defined(BOOST_BORLANDC) \ || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) + || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) \ + || (defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4)) #ifndef BOOST_VERSION_HPP # include @@ -170,12 +177,26 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // vc14: # define BOOST_LIB_TOOLSET "vc140" -# elif defined(BOOST_MSVC) +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1920) // vc14.1: # define BOOST_LIB_TOOLSET "vc141" -# elif defined(__BORLANDC__) +# elif defined(BOOST_MSVC) + + // vc14.2: +# define BOOST_LIB_TOOLSET "vc142" + +# elif defined(BOOST_EMBTC_WINDOWS) + + // Embarcadero Clang based compilers: +# if defined(BOOST_EMBTC_WIN32C) +# define BOOST_LIB_TOOLSET "bcb32" +# elif defined(BOOST_EMBTC_WIN64) +# define BOOST_LIB_TOOLSET "bcb64" +# endif + +# elif defined(BOOST_BORLANDC) // CBuilder 6: # define BOOST_LIB_TOOLSET "bcb" @@ -195,6 +216,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // Metrowerks CodeWarrior 9.x # define BOOST_LIB_TOOLSET "cw9" +# elif defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4) + + // Clang on Windows +# define BOOST_LIB_TOOLSET "clangw" BOOST_STRINGIZE(__clang_major__) + # endif #endif // BOOST_LIB_TOOLSET @@ -320,12 +346,32 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. # endif -#elif defined(__BORLANDC__) +#elif defined(BOOST_EMBTC_WINDOWS) + +# ifdef _RTLDLL + +# if defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-d" +# else +# define BOOST_LIB_RT_OPT +# endif + +# else + +# if defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-sd" +# else +# define BOOST_LIB_RT_OPT "-s" +# endif + +# endif + +#elif defined(BOOST_BORLANDC) // // figure out whether we want the debug builds or not: // -#if __BORLANDC__ > 0x561 +#if BOOST_BORLANDC > 0x561 #pragma defineonoption BOOST_BORLAND_DEBUG -v #endif // @@ -343,7 +389,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. # elif defined(BOOST_BORLAND_DEBUG) # define BOOST_LIB_RT_OPT "-d" # elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT -y +# define BOOST_LIB_RT_OPT "-y" # else # define BOOST_LIB_RT_OPT # endif @@ -401,25 +447,36 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. && defined(BOOST_LIB_ARCH_AND_MODEL_OPT) \ && defined(BOOST_LIB_VERSION) -#ifdef BOOST_AUTO_LINK_TAGGED -# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +#if defined(BOOST_EMBTC_WIN64) +# define BOOST_LIB_SUFFIX ".a" +#else +# define BOOST_LIB_SUFFIX ".lib" +#endif + +#ifdef BOOST_AUTO_LINK_NOMANGLE +# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX) # ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX) # endif -#elif defined(BOOST_AUTO_LINK_NOMANGLE) -# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +#elif defined(BOOST_AUTO_LINK_TAGGED) +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT BOOST_LIB_SUFFIX) # ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT BOOST_LIB_SUFFIX) +# endif +#elif defined(BOOST_AUTO_LINK_SYSTEM) +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX) +# ifdef BOOST_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX) # endif #elif defined(BOOST_LIB_BUILDID) -# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib") +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) BOOST_LIB_SUFFIX) # 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_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib") +# 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_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) BOOST_LIB_SUFFIX) # endif #else -# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib") +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION BOOST_LIB_SUFFIX) # 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_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib") +# 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_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION BOOST_LIB_SUFFIX) # endif #endif @@ -462,5 +519,6 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. #if defined(BOOST_DYN_LINK) # undef BOOST_DYN_LINK #endif - - +#if defined(BOOST_LIB_SUFFIX) +# undef BOOST_LIB_SUFFIX +#endif diff --git a/3rdparty/boost/boost/config/compiler/borland.hpp b/3rdparty/boost/boost/config/compiler/borland.hpp index cb164f8f2a..c5113b7151 100644 --- a/3rdparty/boost/boost/config/compiler/borland.hpp +++ b/3rdparty/boost/boost/config/compiler/borland.hpp @@ -19,9 +19,9 @@ // last known compiler version: #if (__BORLANDC__ > 0x613) //# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" +# error "boost: 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") +//# pragma message( "boost: Unknown compiler version - please run the configure tests and report the results") //# endif #elif (__BORLANDC__ == 0x600) # error "CBuilderX preview compiler is no longer supported" @@ -198,7 +198,9 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -332,4 +334,5 @@ // (Niels Dekker, LKEB, April 2010) #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) +#define BOOST_BORLANDC __BORLANDC__ +#define BOOST_COMPILER "Classic Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) diff --git a/3rdparty/boost/boost/config/compiler/clang.hpp b/3rdparty/boost/boost/config/compiler/clang.hpp index 3d893c689a..9d8ba7d711 100644 --- a/3rdparty/boost/boost/config/compiler/clang.hpp +++ b/3rdparty/boost/boost/config/compiler/clang.hpp @@ -57,6 +57,14 @@ # define BOOST_HAS_STDINT_H #endif +#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC) +#if (__clang_major__ >= 4) && defined(__has_include) +#if __has_include() +# define BOOST_HAS_FLOAT128 +#endif +#endif +#endif + #define BOOST_HAS_NRVO @@ -104,9 +112,9 @@ # define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__)) #else # define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) +# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) # define BOOST_SYMBOL_IMPORT #endif -#define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) // // The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through @@ -242,6 +250,11 @@ #if !__has_feature(cxx_override_control) # define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_OVERRIDE +#endif + +#if !__has_feature(cxx_unrestricted_unions) +# define BOOST_NO_CXX11_UNRESTRICTED_UNION #endif #if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) diff --git a/3rdparty/boost/boost/config/compiler/codegear.hpp b/3rdparty/boost/boost/config/compiler/codegear.hpp index c2cfe15c64..77949aaf46 100644 --- a/3rdparty/boost/boost/config/compiler/codegear.hpp +++ b/3rdparty/boost/boost/config/compiler/codegear.hpp @@ -9,6 +9,155 @@ // CodeGear C++ compiler setup: +// +// versions check: +// last known and checked version is 0x740 +#if (__CODEGEARC__ > 0x740) +# if defined(BOOST_ASSERT_CONFIG) +# error "boost: Unknown compiler version - please run the configure tests and report the results" +# else +# pragma message( "boost: Unknown compiler version - please run the configure tests and report the results") +# endif +#endif + +#ifdef __clang__ // Clang enhanced Windows compiler + +# include "clang.hpp" +# define BOOST_NO_CXX11_THREAD_LOCAL +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR + +// This bug has been reported to Embarcadero + +#if defined(BOOST_HAS_INT128) +#undef BOOST_HAS_INT128 +#endif +#if defined(BOOST_HAS_FLOAT128) +#undef BOOST_HAS_FLOAT128 +#endif + +// The clang-based compilers can not do 128 atomic exchanges + +#define BOOST_ATOMIC_NO_CMPXCHG16B + +// 32 functions are missing from the current RTL in cwchar, so it really can not be used even if it exists + +# define BOOST_NO_CWCHAR + +# ifndef __MT__ /* If compiling in single-threaded mode, assume there is no CXX11_HDR_ATOMIC */ +# define BOOST_NO_CXX11_HDR_ATOMIC +# endif + +/* temporarily disable this until we can link against fegetround fesetround feholdexcept */ + +#define BOOST_NO_FENV_H + +/* Reported this bug to Embarcadero with the latest C++ Builder Rio release */ + +#define BOOST_NO_CXX11_HDR_EXCEPTION + +// +// check for exception handling support: +// +#if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + +/* + +// On non-Win32 platforms let the platform config figure this out: +#ifdef _WIN32 +# define BOOST_HAS_STDINT_H +#endif + +// +// __int64: +// +#if !defined(__STRICT_ANSI__) +# define BOOST_HAS_MS_INT64 +#endif +// +// all versions have a : +// +#if !defined(__STRICT_ANSI__) +# define BOOST_HAS_DIRENT_H +#endif +// +// Disable Win32 support in ANSI mode: +// +# pragma defineonoption BOOST_DISABLE_WIN32 -A +// +// MSVC compatibility mode does some nasty things: +// TODO: look up if this doesn't apply to the whole 12xx range +// +#if defined(_MSC_VER) && (_MSC_VER <= 1200) +# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +# define BOOST_NO_VOID_RETURNS +#endif +// + +*/ + +// Specific settings for Embarcadero drivers +# define BOOST_EMBTC __CODEGEARC__ +# define BOOST_EMBTC_FULL_VER ((__clang_major__ << 16) | \ + (__clang_minor__ << 8) | \ + __clang_patchlevel__ ) + +// Detecting which Embarcadero driver is being used +#if defined(BOOST_EMBTC) +# if defined(_WIN64) +# define BOOST_EMBTC_WIN64 1 +# define BOOST_EMBTC_WINDOWS 1 +# ifndef BOOST_USE_WINDOWS_H +# define BOOST_USE_WINDOWS_H +# endif +# elif defined(_WIN32) +# define BOOST_EMBTC_WIN32C 1 +# define BOOST_EMBTC_WINDOWS 1 +# ifndef BOOST_USE_WINDOWS_H +# define BOOST_USE_WINDOWS_H +# endif +# elif defined(__APPLE__) && defined(__arm__) +# define BOOST_EMBTC_IOSARM 1 +# define BOOST_EMBTC_IOS 1 +# elif defined(__APPLE__) && defined(__aarch64__) +# define BOOST_EMBTC_IOSARM64 1 +# define BOOST_EMBTC_IOS 1 +# elif defined(__ANDROID__) && defined(__arm__) +# define BOOST_EMBTC_AARM 1 +# define BOOST_EMBTC_ANDROID 1 +# elif +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown Embarcadero driver" +# else +# warning "Unknown Embarcadero driver" +# endif /* defined(BOOST_ASSERT_CONFIG) */ +# endif +#endif /* defined(BOOST_EMBTC) */ + +#if defined(BOOST_EMBTC_WINDOWS) + +#if !defined(_chdir) +#define _chdir(x) chdir(x) +#endif + +#if !defined(_dup2) +#define _dup2(x,y) dup2(x,y) +#endif + +#endif + +# undef BOOST_COMPILER +# define BOOST_COMPILER "Embarcadero-Clang C++ version " BOOST_STRINGIZE(__CODEGEARC__) " clang: " __clang_version__ +// # define __CODEGEARC_CLANG__ __CODEGEARC__ +// # define __EMBARCADERO_CLANG__ __CODEGEARC__ +// # define __BORLANDC_CLANG__ __BORLANDC__ + +#else // #if !defined(__clang__) + +# define BOOST_CODEGEARC __CODEGEARC__ +# define BOOST_BORLANDC __BORLANDC__ + #if !defined( BOOST_WITH_CODEGEAR_WARNINGS ) // these warnings occur frequently in optimized template code # pragma warn -8004 // var assigned value, but never used @@ -17,16 +166,6 @@ # pragma warn -8104 // static members with ctors not threadsafe # pragma warn -8105 // reference member in class without ctors #endif -// -// versions check: -// last known and checked version is 0x621 -#if (__CODEGEARC__ > 0x621) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# pragma message( "Unknown compiler version - please run the configure tests and report the results") -# endif -#endif // CodeGear C++ Builder 2009 #if (__CODEGEARC__ <= 0x613) @@ -78,6 +217,8 @@ # define BOOST_HAS_PRAGMA_ONCE #endif +#define BOOST_NO_FENV_H + // // C++0x macros: // @@ -123,7 +264,10 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -237,3 +381,4 @@ #define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__) +#endif // #if !defined(__clang__) diff --git a/3rdparty/boost/boost/config/compiler/comeau.hpp b/3rdparty/boost/boost/config/compiler/comeau.hpp index 09841604f9..ca80fac37a 100644 --- a/3rdparty/boost/boost/config/compiler/comeau.hpp +++ b/3rdparty/boost/boost/config/compiler/comeau.hpp @@ -50,7 +50,7 @@ // 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" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/common_edg.hpp b/3rdparty/boost/boost/config/compiler/common_edg.hpp index 88aba9ac8f..6597cd2ac0 100644 --- a/3rdparty/boost/boost/config/compiler/common_edg.hpp +++ b/3rdparty/boost/boost/config/compiler/common_edg.hpp @@ -107,7 +107,9 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) diff --git a/3rdparty/boost/boost/config/compiler/cray.hpp b/3rdparty/boost/boost/config/compiler/cray.hpp index 412ef9efa5..2f1e9e8e18 100644 --- a/3rdparty/boost/boost/config/compiler/cray.hpp +++ b/3rdparty/boost/boost/config/compiler/cray.hpp @@ -201,6 +201,7 @@ #define BOOST_NO_CXX11_DELETED_FUNCTIONS #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_CXX11_LAMBDAS #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS @@ -220,6 +221,7 @@ #define BOOST_NO_CXX11_USER_DEFINED_LITERALS #define BOOST_NO_CXX11_VARIADIC_MACROS #define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNRESTRICTED_UNION #define BOOST_NO_SFINAE_EXPR #define BOOST_NO_TWO_PHASE_NAME_LOOKUP @@ -274,6 +276,7 @@ #undef BOOST_NO_CXX11_DELETED_FUNCTIONS #undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS #undef BOOST_NO_CXX11_FINAL +#undef BOOST_NO_CXX11_OVERRIDE #undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS #undef BOOST_NO_CXX11_LAMBDAS #undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS @@ -293,6 +296,7 @@ #undef BOOST_NO_CXX11_USER_DEFINED_LITERALS #undef BOOST_NO_CXX11_VARIADIC_MACROS #undef BOOST_NO_CXX11_VARIADIC_TEMPLATES +#undef BOOST_NO_CXX11_UNRESTRICTED_UNION #undef BOOST_NO_SFINAE_EXPR #undef BOOST_NO_TWO_PHASE_NAME_LOOKUP #undef BOOST_MATH_DISABLE_STD_FPCLASSIFY @@ -344,6 +348,7 @@ #undef BOOST_NO_CXX11_CHAR32_T #undef BOOST_NO_CXX11_INLINE_NAMESPACES #undef BOOST_NO_CXX11_FINAL +#undef BOOST_NO_CXX11_OVERRIDE #undef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS #undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_CXX11_SFINAE_EXPR // This is correct, even though '*_fail.cpp' test fails. diff --git a/3rdparty/boost/boost/config/compiler/digitalmars.hpp b/3rdparty/boost/boost/config/compiler/digitalmars.hpp index 3e9a3ab0f5..7641ee8a6d 100644 --- a/3rdparty/boost/boost/config/compiler/digitalmars.hpp +++ b/3rdparty/boost/boost/config/compiler/digitalmars.hpp @@ -83,7 +83,9 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -135,6 +137,6 @@ // last known and checked version is ...: #if (__DMC__ > 0x848) # if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/gcc.hpp b/3rdparty/boost/boost/config/compiler/gcc.hpp index 19ccc592fd..da1a432298 100644 --- a/3rdparty/boost/boost/config/compiler/gcc.hpp +++ b/3rdparty/boost/boost/config/compiler/gcc.hpp @@ -232,7 +232,6 @@ // C++0x features in 4.6.n and later // #if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11) -#define BOOST_NO_CXX11_CONSTEXPR #define BOOST_NO_CXX11_DEFAULTED_MOVES #define BOOST_NO_CXX11_NOEXCEPT #define BOOST_NO_CXX11_NULLPTR @@ -243,16 +242,19 @@ // C++0x features in 4.7.n and later // #if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11) +// Note that while constexpr is partly supported in gcc-4.6 it's a +// pre-std version with several bugs: +# define BOOST_NO_CXX11_CONSTEXPR # define BOOST_NO_CXX11_FINAL # define BOOST_NO_CXX11_TEMPLATE_ALIASES # define BOOST_NO_CXX11_USER_DEFINED_LITERALS # define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +# define BOOST_NO_CXX11_OVERRIDE #endif // C++0x features in 4.8.n and later // #if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11) -# define BOOST_NO_CXX11_ALIGNAS # define BOOST_NO_CXX11_THREAD_LOCAL # define BOOST_NO_CXX11_SFINAE_EXPR #endif @@ -265,6 +267,20 @@ # define BOOST_NO_CXX14_BINARY_LITERALS #endif +// C++0x features in 4.9.n and later +// +#if (BOOST_GCC_VERSION < 40900) || !defined(BOOST_GCC_CXX11) +// Although alignas support is added in gcc 4.8, it does not accept +// constant expressions as an argument until gcc 4.9. +# define BOOST_NO_CXX11_ALIGNAS +#endif + +// C++0x features in 5.1 and later +// +#if (BOOST_GCC_VERSION < 50100) || !defined(BOOST_GCC_CXX11) +# define BOOST_NO_CXX11_UNRESTRICTED_UNION +#endif + // C++14 features in 4.9.0 and later // #if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300) @@ -307,8 +323,8 @@ # define BOOST_FALLTHROUGH __attribute__((fallthrough)) #endif -#ifdef __MINGW32__ -// Currently (June 2017) thread_local is broken on mingw for all current compiler releases, see +#if defined(__MINGW32__) && !defined(__MINGW64__) +// Currently (March 2019) thread_local is broken on mingw for all current 32bit compiler releases, see // https://sourceforge.net/p/mingw-w64/bugs/527/ // Not setting this causes program termination on thread exit. #define BOOST_NO_CXX11_THREAD_LOCAL @@ -325,7 +341,7 @@ // // __builtin_unreachable: -#if BOOST_GCC_VERSION >= 40800 +#if BOOST_GCC_VERSION >= 40500 #define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable(); #endif @@ -346,14 +362,14 @@ # error "Compiler not configured - please reconfigure" #endif // -// last known and checked version is 7.1: -#if (BOOST_GCC_VERSION > 70100) +// last known and checked version is 8.1: +#if (BOOST_GCC_VERSION > 80100) # if defined(BOOST_ASSERT_CONFIG) # error "Boost.Config is older than your compiler - please check for an updated Boost release." # 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" +//# warning "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/gcc_xml.hpp b/3rdparty/boost/boost/config/compiler/gcc_xml.hpp index bdba4ed092..fd6896a811 100644 --- a/3rdparty/boost/boost/config/compiler/gcc_xml.hpp +++ b/3rdparty/boost/boost/config/compiler/gcc_xml.hpp @@ -61,7 +61,9 @@ # define BOOST_NO_CXX11_INLINE_NAMESPACES # define BOOST_NO_CXX11_REF_QUALIFIERS # define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_OVERRIDE # define BOOST_NO_CXX11_THREAD_LOCAL +# define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) diff --git a/3rdparty/boost/boost/config/compiler/greenhills.hpp b/3rdparty/boost/boost/config/compiler/greenhills.hpp index a76a07cf4a..39112c2c1c 100644 --- a/3rdparty/boost/boost/config/compiler/greenhills.hpp +++ b/3rdparty/boost/boost/config/compiler/greenhills.hpp @@ -21,7 +21,7 @@ // 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" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/hp_acc.hpp b/3rdparty/boost/boost/config/compiler/hp_acc.hpp index 9df18eaf67..cf5667b520 100644 --- a/3rdparty/boost/boost/config/compiler/hp_acc.hpp +++ b/3rdparty/boost/boost/config/compiler/hp_acc.hpp @@ -125,6 +125,7 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION /* See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and @@ -142,6 +143,6 @@ // last known and checked version for PA-RISC is 38000 #if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98))) # if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/intel.hpp b/3rdparty/boost/boost/config/compiler/intel.hpp index 0eea05b916..9a06d2fe3d 100644 --- a/3rdparty/boost/boost/config/compiler/intel.hpp +++ b/3rdparty/boost/boost/config/compiler/intel.hpp @@ -46,12 +46,17 @@ #undef BOOST_GCC_VERSION #undef BOOST_GCC_CXX11 #undef BOOST_GCC +#undef BOOST_FALLTHROUGH // Broken in all versions up to 17 (newer versions not tested) #if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR) # define BOOST_NO_CXX14_CONSTEXPR #endif +#if (__INTEL_COMPILER >= 1800) && (__cplusplus >= 201703) +# define BOOST_FALLTHROUGH [[fallthrough]] +#endif + #endif // defined(_MSC_VER) #undef BOOST_COMPILER @@ -496,8 +501,15 @@ template<> struct assert_intrinsic_wchar_t {}; #endif // BOOST_NO_CXX11_FINAL +// BOOST_NO_CXX11_OVERRIDE #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) # undef BOOST_NO_CXX11_FINAL +# undef BOOST_NO_CXX11_OVERRIDE +#endif + +// BOOST_NO_CXX11_UNRESTRICTED_UNION +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 50100)) && (!defined(_MSC_VER)) +# undef BOOST_NO_CXX11_UNRESTRICTED_UNION #endif #endif // defined(BOOST_INTEL_STDCXX0X) @@ -558,7 +570,7 @@ template<> struct assert_intrinsic_wchar_t {}; // We don't emit this warning any more, since we have so few // defect macros set anyway (just the one). // -//# pragma message("Unknown compiler version - please run the configure tests and report the results") +//# pragma message("boost: Unknown compiler version - please run the configure tests and report the results") # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/kai.hpp b/3rdparty/boost/boost/config/compiler/kai.hpp index 960d501c86..0b22ec1d6c 100644 --- a/3rdparty/boost/boost/config/compiler/kai.hpp +++ b/3rdparty/boost/boost/config/compiler/kai.hpp @@ -25,7 +25,7 @@ // 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" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/metrowerks.hpp b/3rdparty/boost/boost/config/compiler/metrowerks.hpp index 4bfc01ece1..32c1ca9a2a 100644 --- a/3rdparty/boost/boost/config/compiler/metrowerks.hpp +++ b/3rdparty/boost/boost/config/compiler/metrowerks.hpp @@ -126,7 +126,9 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -183,7 +185,7 @@ // 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" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/mpw.hpp b/3rdparty/boost/boost/config/compiler/mpw.hpp index 2292ada092..750d588415 100644 --- a/3rdparty/boost/boost/config/compiler/mpw.hpp +++ b/3rdparty/boost/boost/config/compiler/mpw.hpp @@ -75,7 +75,9 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -130,7 +132,7 @@ // 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" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif diff --git a/3rdparty/boost/boost/config/compiler/pathscale.hpp b/3rdparty/boost/boost/config/compiler/pathscale.hpp index 1318d275ad..683b0d31ba 100644 --- a/3rdparty/boost/boost/config/compiler/pathscale.hpp +++ b/3rdparty/boost/boost/config/compiler/pathscale.hpp @@ -88,7 +88,9 @@ # define BOOST_NO_CXX11_INLINE_NAMESPACES # define BOOST_NO_CXX11_REF_QUALIFIERS # define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_OVERRIDE # define BOOST_NO_CXX11_THREAD_LOCAL +# define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) diff --git a/3rdparty/boost/boost/config/compiler/sunpro_cc.hpp b/3rdparty/boost/boost/config/compiler/sunpro_cc.hpp index 41b7bcade6..c674e8ab58 100644 --- a/3rdparty/boost/boost/config/compiler/sunpro_cc.hpp +++ b/3rdparty/boost/boost/config/compiler/sunpro_cc.hpp @@ -123,6 +123,8 @@ #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE +#define BOOST_NO_CXX11_UNRESTRICTED_UNION #endif #if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103) diff --git a/3rdparty/boost/boost/config/compiler/vacpp.hpp b/3rdparty/boost/boost/config/compiler/vacpp.hpp index cabe844ffd..0280fe2958 100644 --- a/3rdparty/boost/boost/config/compiler/vacpp.hpp +++ b/3rdparty/boost/boost/config/compiler/vacpp.hpp @@ -56,7 +56,7 @@ // last known and checked version is 1210: #if (__IBMCPP__ > 1210) # if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" +# error "boost: Unknown compiler version - please run the configure tests and report the results" # endif #endif @@ -137,7 +137,9 @@ #define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) diff --git a/3rdparty/boost/boost/config/compiler/visualc.hpp b/3rdparty/boost/boost/config/compiler/visualc.hpp index ded7284a62..7335540db0 100644 --- a/3rdparty/boost/boost/config/compiler/visualc.hpp +++ b/3rdparty/boost/boost/config/compiler/visualc.hpp @@ -43,6 +43,9 @@ # error "Compiler not supported or configured - please reconfigure" #endif +// VS2005 (VC8) docs: __assume has been in Visual C++ for multiple releases +#define BOOST_UNREACHABLE_RETURN(x) __assume(0); + #if _MSC_FULL_VER < 180020827 # define BOOST_NO_FENV_H #endif @@ -108,8 +111,8 @@ // TR1 features: // #if (_MSC_VER >= 1700) && defined(_HAS_CXX17) && (_HAS_CXX17 > 0) -// # define BOOST_HAS_TR1_HASH // don't know if this is true yet. -// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet. +// # define BOOST_HAS_TR1_HASH // don't know if this is true yet. +// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet. # define BOOST_HAS_TR1_UNORDERED_MAP # define BOOST_HAS_TR1_UNORDERED_SET #endif @@ -141,6 +144,7 @@ # define BOOST_NO_CXX11_FINAL # define BOOST_NO_CXX11_RANGE_BASED_FOR # define BOOST_NO_CXX11_SCOPED_ENUMS +# define BOOST_NO_CXX11_OVERRIDE #endif // _MSC_VER < 1700 // C++11 features supported by VC++ 12 (aka 2013). @@ -182,6 +186,7 @@ # define BOOST_NO_CXX14_GENERIC_LAMBDAS # define BOOST_NO_CXX14_DIGIT_SEPARATORS # define BOOST_NO_CXX11_THREAD_LOCAL +# define BOOST_NO_CXX11_UNRESTRICTED_UNION #endif // C++11 features supported by VC++ 14 update 3 (aka 2015) // @@ -202,6 +207,9 @@ #if (_MSC_VER < 1911) || (_MSVC_LANG < 201703) # define BOOST_NO_CXX17_STRUCTURED_BINDINGS # define BOOST_NO_CXX17_IF_CONSTEXPR +// Let the defaults handle these now: +//# define BOOST_NO_CXX17_HDR_OPTIONAL +//# define BOOST_NO_CXX17_HDR_STRING_VIEW #endif // MSVC including version 14 has not yet completely @@ -234,9 +242,11 @@ // Supported from msvc-15.5 onwards: #define BOOST_NO_CXX11_SFINAE_EXPR #endif +#if (_MSC_VER < 1915) || (_MSVC_LANG < 201402) // C++ 14: // Still gives internal compiler error for msvc-15.5: # define BOOST_NO_CXX14_CONSTEXPR +#endif // C++ 17: #if (_MSC_VER < 1912) || (_MSVC_LANG < 201703) #define BOOST_NO_CXX17_INLINE_VARIABLES @@ -284,9 +294,9 @@ # if _MSC_VER < 1400 // Note: I'm not aware of any CE compiler with version 13xx # if defined(BOOST_ASSERT_CONFIG) -# error "Unknown EVC++ compiler version - please run the configure tests and report the results" +# error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results" # else -# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +# pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results") # endif # elif _MSC_VER < 1500 # define BOOST_COMPILER_VERSION evc8 @@ -302,14 +312,14 @@ # define BOOST_COMPILER_VERSION evc14 # else # if defined(BOOST_ASSERT_CONFIG) -# error "Unknown EVC++ compiler version - please run the configure tests and report the results" +# error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results" # else -# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +# pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results") # endif # endif # else # if _MSC_VER < 1200 - // Note: Versions up to 7.0 aren't supported. + // Note: Versions up to 10.0 aren't supported. # define BOOST_COMPILER_VERSION 5.0 # elif _MSC_VER < 1300 # define BOOST_COMPILER_VERSION 6.0 @@ -331,6 +341,8 @@ # define BOOST_COMPILER_VERSION 14.0 # elif _MSC_VER < 1920 # define BOOST_COMPILER_VERSION 14.1 +# elif _MSC_VER < 1930 +# define BOOST_COMPILER_VERSION 14.2 # else # define BOOST_COMPILER_VERSION _MSC_VER # endif @@ -342,8 +354,8 @@ #include // -// last known and checked version is 19.12.25830.2 (VC++ 2017.3): -#if (_MSC_VER > 1912) +// last known and checked version is 19.20.27508 (VC++ 2019 RC3): +#if (_MSC_VER > 1920) # if defined(BOOST_ASSERT_CONFIG) # error "Boost.Config is older than your current compiler version." # elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE) diff --git a/3rdparty/boost/boost/config/compiler/xlcpp.hpp b/3rdparty/boost/boost/config/compiler/xlcpp.hpp index ee7aa1253a..c24b2c5163 100644 --- a/3rdparty/boost/boost/config/compiler/xlcpp.hpp +++ b/3rdparty/boost/boost/config/compiler/xlcpp.hpp @@ -194,6 +194,11 @@ #if !__has_feature(cxx_override_control) # define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_OVERRIDE +#endif + +#if !__has_feature(cxx_unrestricted_unions) +# define BOOST_NO_CXX11_UNRESTRICTED_UNION #endif #if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) diff --git a/3rdparty/boost/boost/config/compiler/xlcpp_zos.hpp b/3rdparty/boost/boost/config/compiler/xlcpp_zos.hpp index eb1bf2e992..bc5b7e831f 100644 --- a/3rdparty/boost/boost/config/compiler/xlcpp_zos.hpp +++ b/3rdparty/boost/boost/config/compiler/xlcpp_zos.hpp @@ -140,7 +140,9 @@ #define BOOST_NO_CXX11_THREAD_LOCAL #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE #define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_UNRESTRICTED_UNION #define BOOST_NO_CXX14_VARIABLE_TEMPLATES #define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION #define BOOST_NO_CXX14_AGGREGATE_NSDMI diff --git a/3rdparty/boost/boost/config/detail/select_compiler_config.hpp b/3rdparty/boost/boost/config/detail/select_compiler_config.hpp index ced8443da9..c3d99e1a43 100644 --- a/3rdparty/boost/boost/config/detail/select_compiler_config.hpp +++ b/3rdparty/boost/boost/config/detail/select_compiler_config.hpp @@ -39,8 +39,7 @@ // Intel # define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" -#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__) -// when using clang and cuda at same time, you want to appear as gcc +#elif defined __clang__ && !defined(__ibmxl__) && !defined(__CODEGEARC__) // Clang C++ emulates GCC, so it has to appear early. # define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp" diff --git a/3rdparty/boost/boost/config/detail/select_stdlib_config.hpp b/3rdparty/boost/boost/config/detail/select_stdlib_config.hpp index 8db778c86b..1a09dda126 100644 --- a/3rdparty/boost/boost/config/detail/select_stdlib_config.hpp +++ b/3rdparty/boost/boost/config/detail/select_stdlib_config.hpp @@ -11,10 +11,21 @@ // locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: -// First include to determine if some version of STLport is in use as the std lib +// First, check if __has_include is available and include can be located, +// otherwise include to determine if some version of STLport is in use as the std lib // (do not rely on this header being included since users can short-circuit this header // if they know whose std lib they are using.) -#ifdef __cplusplus +#if defined(__cplusplus) && defined(__has_include) +# if __has_include() +// It should be safe to include `` when it is present without checking +// the actual C++ language version as it consists solely of macro definitions. +// [version.syn] p1: The header supplies implementation-dependent +// information about the C++ standard library (e.g., version number and release date). +# include +# else +# include +# endif +#elif defined(__cplusplus) # include #else # include diff --git a/3rdparty/boost/boost/config/detail/suffix.hpp b/3rdparty/boost/boost/config/detail/suffix.hpp index 22d31f68db..994dce9289 100644 --- a/3rdparty/boost/boost/config/detail/suffix.hpp +++ b/3rdparty/boost/boost/config/detail/suffix.hpp @@ -35,7 +35,7 @@ #endif // -// ensure that visibility macros are always defined, thus symplifying use +// ensure that visibility macros are always defined, thus simplifying use // #ifndef BOOST_SYMBOL_EXPORT # define BOOST_SYMBOL_EXPORT @@ -54,7 +54,7 @@ // no namespace issues from this. // #if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG) \ - && !defined(BOOST_MSVC) && !defined(__BORLANDC__) + && !defined(BOOST_MSVC) && !defined(BOOST_BORLANDC) # include # if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) # define BOOST_HAS_LONG_LONG @@ -529,10 +529,13 @@ namespace boost { # define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) // When BOOST_NO_STD_TYPEINFO is defined, we can just import -// the global definition into std namespace: -#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus) +// the global definition into std namespace, +// see https://svn.boost.org/trac10/ticket/4115 +#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus) && defined(BOOST_MSVC) #include namespace std{ using ::type_info; } +// Since we do now have typeinfo, undef the macro: +#undef BOOST_NO_STD_TYPEINFO #endif // ---------------------------------------------------------------------------// @@ -634,7 +637,7 @@ namespace std{ using ::type_info; } #if !defined(BOOST_NORETURN) # if defined(_MSC_VER) # define BOOST_NORETURN __declspec(noreturn) -# elif defined(__GNUC__) +# elif defined(__GNUC__) || defined(__CODEGEARC__) && defined(__clang__) # define BOOST_NORETURN __attribute__ ((__noreturn__)) # elif defined(__has_attribute) && defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x5130) # if __has_attribute(noreturn) @@ -667,6 +670,12 @@ namespace std{ using ::type_info; } # define BOOST_UNLIKELY(x) x #endif +#if !defined(BOOST_NO_CXX11_OVERRIDE) +# define BOOST_OVERRIDE override +#else +# define BOOST_OVERRIDE +#endif + // Type and data alignment specification // #if !defined(BOOST_ALIGNMENT) @@ -943,6 +952,14 @@ namespace std{ using ::type_info; } // ------------------ End of deprecated macros for 1.51 --------------------------- +// +// Helper macro for marking types and methods final +// +#if !defined(BOOST_NO_CXX11_FINAL) +# define BOOST_FINAL final +#else +# define BOOST_FINAL +#endif // // Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR @@ -986,12 +1003,56 @@ namespace std{ using ::type_info; } #define BOOST_CXX14_CONSTEXPR constexpr #endif +// +// C++17 inline variables +// +#if !defined(BOOST_NO_CXX17_INLINE_VARIABLES) +#define BOOST_INLINE_VARIABLE inline +#else +#define BOOST_INLINE_VARIABLE +#endif +// +// C++17 if constexpr +// +#if !defined(BOOST_NO_CXX17_IF_CONSTEXPR) +# define BOOST_IF_CONSTEXPR if constexpr +#else +# define BOOST_IF_CONSTEXPR if +#endif + +#define BOOST_INLINE_CONSTEXPR BOOST_INLINE_VARIABLE BOOST_CONSTEXPR_OR_CONST + // // Unused variable/typedef workarounds: // #ifndef BOOST_ATTRIBUTE_UNUSED # define BOOST_ATTRIBUTE_UNUSED #endif +// +// [[nodiscard]]: +// +#if defined(__has_attribute) && defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x5130) +#if __has_attribute(nodiscard) +# define BOOST_ATTRIBUTE_NODISCARD [[nodiscard]] +#endif +#if __has_attribute(no_unique_address) +# define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS [[no_unique_address]] +#endif +#elif defined(__has_cpp_attribute) +// clang-6 accepts [[nodiscard]] with -std=c++14, but warns about it -pedantic +#if __has_cpp_attribute(nodiscard) && !(defined(__clang__) && (__cplusplus < 201703L)) +# define BOOST_ATTRIBUTE_NODISCARD [[nodiscard]] +#endif +#if __has_cpp_attribute(no_unique_address) && !(defined(__GNUC__) && (__cplusplus < 201100)) +# define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS [[no_unique_address]] +#endif +#endif +#ifndef BOOST_ATTRIBUTE_NODISCARD +# define BOOST_ATTRIBUTE_NODISCARD +#endif +#ifndef BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS +# define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS +#endif #define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST @@ -1023,6 +1084,25 @@ namespace std{ using ::type_info; } # define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS #endif +// This is a catch all case for obsolete compilers / std libs: +#if !defined(_YVALS) && !defined(_CPPLIB_VER) // msvc std lib already configured +#if (!defined(__has_include) || (__cplusplus < 201700)) +# define BOOST_NO_CXX17_HDR_OPTIONAL +# define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_VARIANT +#else +#if !__has_include() +# define BOOST_NO_CXX17_HDR_OPTIONAL +#endif +#if !__has_include() +# define BOOST_NO_CXX17_HDR_STRING_VIEW +#endif +#if !__has_include() +# define BOOST_NO_CXX17_HDR_VARIANT +#endif +#endif +#endif + // // Finish off with checks for macros that are depricated / no longer supported, // if any of these are set then it's very likely that much of Boost will no diff --git a/3rdparty/boost/boost/config/platform/cygwin.hpp b/3rdparty/boost/boost/config/platform/cygwin.hpp index 6dd7e57cfd..d0052d8b45 100644 --- a/3rdparty/boost/boost/config/platform/cygwin.hpp +++ b/3rdparty/boost/boost/config/platform/cygwin.hpp @@ -42,8 +42,11 @@ # define BOOST_HAS_STDINT_H #endif +#include +#if (CYGWIN_VERSION_API_MAJOR == 0 && CYGWIN_VERSION_API_MINOR < 231) /// Cygwin has no fenv.h #define BOOST_NO_FENV_H +#endif // Cygwin has it's own which breaks unless the correct compiler flags are used: #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/3rdparty/boost/boost/config/platform/vxworks.hpp b/3rdparty/boost/boost/config/platform/vxworks.hpp index a91e4ab439..0564b9443f 100644 --- a/3rdparty/boost/boost/config/platform/vxworks.hpp +++ b/3rdparty/boost/boost/config/platform/vxworks.hpp @@ -12,40 +12,17 @@ // like (GCC 2.96) . Do not even think of getting this to work, // a miserable failure will be guaranteed! // -// Equally, this file has been tested for RTPs (Real Time Processes) -// only, not for DKMs (Downloadable Kernel Modules). These two types -// of executables differ largely in the available functionality of -// the C-library, STL, and so on. A DKM uses a C89 library with no -// wide character support and no guarantee of ANSI C. The same Dinkum +// VxWorks supports C++ linkage in the kernel with +// DKMs (Downloadable Kernel Modules). But, until recently +// the kernel used a C89 library with no +// wide character support and no guarantee of ANSI C. +// Regardless of the C library the same Dinkum // STL library is used in both contexts. // // Similarly the Dinkum abridged STL that supports the loosely specified // embedded C++ standard has not been tested and is unlikely to work // on anything but the simplest library. // ==================================================================== -// -// Additional Configuration -// ------------------------------------------------------------------- -// -// Because of the ordering of include files and other issues the following -// additional definitions worked better outside this file. -// -// When building the log library add the following to the b2 invocation -// define=BOOST_LOG_WITHOUT_IPC -// and -// -DBOOST_LOG_WITHOUT_DEFAULT_FACTORIES -// to your compile options. -// -// When building the test library add -// -DBOOST_TEST_LIMITED_SIGNAL_DETAILS -// to your compile options -// -// When building containers library add -// -DHAVE_MORECORE=0 -// to your c compile options so dlmalloc heap library is compiled -// without brk() calls -// -// ==================================================================== // // Some important information regarding the usage of POSIX semaphores: // ------------------------------------------------------------------- @@ -112,30 +89,20 @@ // -------------------------------- #define BOOST_PLATFORM "vxWorks" -// Special behaviour for DKMs: -#ifdef _WRS_KERNEL - // DKMs do not have the -header, - // but apparently they do have an intrinsic wchar_t meanwhile! -# define BOOST_NO_CWCHAR - - // Lots of wide-functions and -headers are unavailable for DKMs as well: -# define BOOST_NO_CWCTYPE -# define BOOST_NO_SWPRINTF -# define BOOST_NO_STD_WSTRING -# define BOOST_NO_STD_WSTREAMBUF -#endif // Generally available headers: #define BOOST_HAS_UNISTD_H #define BOOST_HAS_STDINT_H #define BOOST_HAS_DIRENT_H -#define BOOST_HAS_SLIST +//#define BOOST_HAS_SLIST // vxWorks does not have installed an iconv-library by default, // so unfortunately no Unicode support from scratch is available! // Thus, instead it is suggested to switch to ICU, as this seems // to be the most complete and portable option... -#define BOOST_LOCALE_WITH_ICU +#ifndef BOOST_LOCALE_WITH_ICU + #define BOOST_LOCALE_WITH_ICU +#endif // Generally available functionality: #define BOOST_HAS_THREADS @@ -170,16 +137,18 @@ # ifndef _POSIX_THREADS # define _POSIX_THREADS 1 # endif +// no sysconf( _SC_PAGESIZE) in kernel +# define BOOST_THREAD_USES_GETPAGESIZE #endif #if (_WRS_VXWORKS_MAJOR < 7) // vxWorks-around: #defines CLOCKS_PER_SEC as sysClkRateGet() but // miserably fails to #include the required to make // sysClkRateGet() available! So we manually include it here. -#ifdef __RTP__ -# include -# include -#endif +# ifdef __RTP__ +# include +# include +# endif // vxWorks-around: In the macros INT32_C(), UINT32_C(), INT64_C() and // UINT64_C() are defined erroneously, yielding not a signed/ @@ -188,30 +157,47 @@ // when trying to define several constants which do not fit into a // long type! We correct them here by redefining. -#include +# include + +// Special behaviour for DKMs: // Some macro-magic to do the job -#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y) -#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y) -#define VX_DO_JOIN2(X, Y) X##Y +# define VX_JOIN(X, Y) VX_DO_JOIN(X, Y) +# define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y) +# define VX_DO_JOIN2(X, Y) X##Y // Correctly setup the macros -#undef INT32_C -#undef UINT32_C -#undef INT64_C -#undef UINT64_C -#define INT32_C(x) VX_JOIN(x, L) -#define UINT32_C(x) VX_JOIN(x, UL) -#define INT64_C(x) VX_JOIN(x, LL) -#define UINT64_C(x) VX_JOIN(x, ULL) +# undef INT32_C +# undef UINT32_C +# undef INT64_C +# undef UINT64_C +# define INT32_C(x) VX_JOIN(x, L) +# define UINT32_C(x) VX_JOIN(x, UL) +# define INT64_C(x) VX_JOIN(x, LL) +# define UINT64_C(x) VX_JOIN(x, ULL) // #include Libraries required for the following function adaption -#include +# include #endif // _WRS_VXWORKS_MAJOR < 7 #include #include +#if defined(_WRS_KERNEL) && (_CPPLIB_VER < 700) + // recent kernels use Dinkum clib v7.00+ + // with widechar but older kernels + // do not have the -header, + // but apparently they do have an intrinsic wchar_t meanwhile! +# define BOOST_NO_CWCHAR + + // Lots of wide-functions and -headers are unavailable for DKMs as well: +# define BOOST_NO_CWCTYPE +# define BOOST_NO_SWPRINTF +# define BOOST_NO_STD_WSTRING +# define BOOST_NO_STD_WSTREAMBUF +#endif + + // Use C-linkage for the following helper functions #ifdef __cplusplus extern "C" { @@ -253,9 +239,9 @@ inline int truncate(const char *p, off_t l){ } #ifdef __GNUC__ -#define ___unused __attribute__((unused)) +# define ___unused __attribute__((unused)) #else -#define ___unused +# define ___unused #endif // Fake symlink handling by dummy functions: @@ -291,7 +277,7 @@ inline int gettimeofday(struct timeval *tv, void * /*tzv*/) { * to avoid conflict with MPL operator times */ #if (_WRS_VXWORKS_MAJOR < 7) -#ifdef __cplusplus +# ifdef __cplusplus // vxWorks provides neither struct tms nor function times()! // We implement an empty dummy-function, simply setting the user @@ -327,25 +313,25 @@ struct tms{ namespace std { using ::times; } -#endif // __cplusplus +# endif // __cplusplus #endif // _WRS_VXWORKS_MAJOR < 7 #ifdef __cplusplus -extern "C" void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h +extern "C" void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h // Put the selfmade functions into the std-namespace, just in case namespace std { -# ifdef __RTP__ +# ifdef __RTP__ using ::getrlimit; using ::setrlimit; -# endif +# endif using ::truncate; using ::symlink; using ::readlink; -#if (_WRS_VXWORKS_MAJOR < 7) +# if (_WRS_VXWORKS_MAJOR < 7) using ::gettimeofday; -#endif +# endif } #endif // __cplusplus @@ -355,10 +341,12 @@ namespace std { // Include signal.h which might contain a typo to be corrected here #include + #if (_WRS_VXWORKS_MAJOR < 7) -#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway! +# define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway! inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks! #endif + #ifndef S_ISSOCK # define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket? #endif @@ -379,7 +367,7 @@ typedef int locale_t; // locale_t is a POSIX-ex // vxWorks 7 adds C++11 support // however it is optional, and does not match exactly the support determined // by examining the Dinkum STL version and GCC version (or ICC and DCC) -#ifndef _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011 +#if !( defined( _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011) || defined(_WRS_CONFIG_LIBCPLUS_STD)) # define BOOST_NO_CXX11_ADDRESSOF // C11 addressof operator on memory location # define BOOST_NO_CXX11_ALLOCATOR # define BOOST_NO_CXX11_ATOMIC_SMART_PTR @@ -408,9 +396,9 @@ typedef int locale_t; // locale_t is a POSIX-ex # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET #else -#ifndef BOOST_SYSTEM_NO_DEPRECATED -# define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit -#endif +# ifndef BOOST_SYSTEM_NO_DEPRECATED +# define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit +# endif #endif @@ -418,6 +406,8 @@ typedef int locale_t; // locale_t is a POSIX-ex #undef NONE // restrict is an iostreams class #undef restrict +// affects some typeof tests +#undef V7 // use fake poll() from Unix layer in ASIO to get full functionality // most libraries will use select() but this define allows 'iostream' functionality @@ -430,4 +420,3 @@ typedef int locale_t; // locale_t is a POSIX-ex # define BOOST_ASIO_DISABLE_SERIAL_PORT #endif - diff --git a/3rdparty/boost/boost/config/requires_threads.hpp b/3rdparty/boost/boost/config/requires_threads.hpp index cfaff23027..c23a2ce3c9 100644 --- a/3rdparty/boost/boost/config/requires_threads.hpp +++ b/3rdparty/boost/boost/config/requires_threads.hpp @@ -54,7 +54,7 @@ // 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__ +#elif defined BOOST_BORLANDC // Borland # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM" diff --git a/3rdparty/boost/boost/config/stdlib/dinkumware.hpp b/3rdparty/boost/boost/config/stdlib/dinkumware.hpp index e829f08e51..3dc6d50867 100644 --- a/3rdparty/boost/boost/config/stdlib/dinkumware.hpp +++ b/3rdparty/boost/boost/config/stdlib/dinkumware.hpp @@ -22,7 +22,7 @@ #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 +# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(BOOST_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) @@ -68,12 +68,12 @@ // 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__) +#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(BOOST_BORLANDC) # define BOOST_STD_EXTENSION_NAMESPACE stdext #endif -#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306) +#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(BOOST_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) @@ -86,20 +86,24 @@ # define BOOST_NO_STD_LOCALE #endif +#if ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER))) && (_MSC_VER < 1800) // Fix for VC++ 8.0 on up ( I do not have a previous version to test ) // or clang-cl. If exceptions are off you must manually include the // header before including the header. Admittedly // trying to use Boost libraries or the standard C++ libraries without // exception support is not suggested but currently clang-cl ( v 3.4 ) // does not support exceptions and must be compiled with exceptions off. -#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER))) +#if !_HAS_EXCEPTIONS #include #endif #include -#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (defined(__ghs__) && !_HAS_NAMESPACE) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \ - && !defined(__VXWORKS__) +#if !_HAS_EXCEPTIONS # define BOOST_NO_STD_TYPEINFO #endif +#endif +#if defined(__ghs__) && !_HAS_NAMESPACE +# define BOOST_NO_STD_TYPEINFO +#endif // C++0x headers implemented in 520 (as shipped by Microsoft) // @@ -136,6 +140,7 @@ # define BOOST_NO_CXX11_HDR_RATIO # define BOOST_NO_CXX11_HDR_THREAD # define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_HDR_EXCEPTION #endif // C++0x headers implemented in 610 (as shipped by Microsoft) @@ -174,6 +179,9 @@ #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) # define BOOST_NO_CXX17_STD_APPLY # define BOOST_NO_CXX17_ITERATOR_TRAITS +# define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_OPTIONAL +# define BOOST_NO_CXX17_HDR_VARIANT #endif #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709) # define BOOST_NO_CXX17_STD_INVOKE diff --git a/3rdparty/boost/boost/config/stdlib/libcomo.hpp b/3rdparty/boost/boost/config/stdlib/libcomo.hpp index 75ac2bb76a..6a8a161962 100644 --- a/3rdparty/boost/boost/config/stdlib/libcomo.hpp +++ b/3rdparty/boost/boost/config/stdlib/libcomo.hpp @@ -39,6 +39,7 @@ # define BOOST_NO_CXX11_HDR_CHRONO # define BOOST_NO_CXX11_HDR_CODECVT # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_EXCEPTION # define BOOST_NO_CXX11_HDR_FORWARD_LIST # define BOOST_NO_CXX11_HDR_FUTURE # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST diff --git a/3rdparty/boost/boost/config/stdlib/libcpp.hpp b/3rdparty/boost/boost/config/stdlib/libcpp.hpp index a051dbb750..e8eea9117c 100644 --- a/3rdparty/boost/boost/config/stdlib/libcpp.hpp +++ b/3rdparty/boost/boost/config/stdlib/libcpp.hpp @@ -41,6 +41,7 @@ # define BOOST_NO_CXX11_HDR_CODECVT # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_EXCEPTION # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST # define BOOST_NO_CXX11_HDR_MUTEX # define BOOST_NO_CXX11_HDR_RANDOM @@ -89,6 +90,9 @@ // C++17 features #if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L) # define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_HDR_OPTIONAL +# define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_VARIANT #endif #if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR) # define BOOST_NO_AUTO_PTR @@ -111,10 +115,16 @@ # define BOOST_NO_CXX11_THREAD_LOCAL #endif -#if defined(__linux__) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) +#if defined(__linux__) && (_LIBCPP_VERSION < 6000) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) // After libc++-dev is installed on Trusty, clang++-libc++ almost works, // except uses of `thread_local` fail with undefined reference to // `__cxa_thread_atexit`. +// +// clang's libc++abi provides an implementation by deferring to the glibc +// implementation, which may or may not be available (it is not on Trusty). +// clang 4's libc++abi will provide an implementation if one is not in glibc +// though, so thread local support should work with clang 4 and above as long +// as libc++abi is linked in. # define BOOST_NO_CXX11_THREAD_LOCAL #endif @@ -128,4 +138,8 @@ # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif +#if !defined(BOOST_NO_CXX14_HDR_SHARED_MUTEX) && (_LIBCPP_VERSION < 5000) +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + // --- end --- diff --git a/3rdparty/boost/boost/config/stdlib/libstdcpp3.hpp b/3rdparty/boost/boost/config/stdlib/libstdcpp3.hpp index f6eab26c65..ee8f2a20ae 100644 --- a/3rdparty/boost/boost/config/stdlib/libstdcpp3.hpp +++ b/3rdparty/boost/boost/config/stdlib/libstdcpp3.hpp @@ -125,7 +125,15 @@ // #ifdef __clang__ -#if __has_include() +#if __has_include() +# define BOOST_LIBSTDCXX_VERSION 100100 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 90100 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 80100 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 70100 +#elif __has_include() # define BOOST_LIBSTDCXX_VERSION 60100 #elif __has_include() # define BOOST_LIBSTDCXX_VERSION 50100 @@ -231,6 +239,7 @@ extern "C" char *gets (char *__s); # define BOOST_NO_CXX11_HDR_RATIO # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR # define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_EXCEPTION #else # define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG # define BOOST_HAS_TR1_COMPLEX_OVERLOADS @@ -299,6 +308,9 @@ extern "C" char *gets (char *__s); #if (BOOST_LIBSTDCXX_VERSION < 70100) || (__cplusplus <= 201402L) # define BOOST_NO_CXX17_STD_INVOKE # define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_HDR_OPTIONAL +# define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_VARIANT #endif #if defined(__has_include) diff --git a/3rdparty/boost/boost/config/stdlib/modena.hpp b/3rdparty/boost/boost/config/stdlib/modena.hpp index 81919e0180..31a26c856a 100644 --- a/3rdparty/boost/boost/config/stdlib/modena.hpp +++ b/3rdparty/boost/boost/config/stdlib/modena.hpp @@ -51,6 +51,7 @@ # define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX11_HDR_EXCEPTION #if defined(__has_include) #if !__has_include() diff --git a/3rdparty/boost/boost/config/stdlib/msl.hpp b/3rdparty/boost/boost/config/stdlib/msl.hpp index 0e2e2afee8..f2f825983b 100644 --- a/3rdparty/boost/boost/config/stdlib/msl.hpp +++ b/3rdparty/boost/boost/config/stdlib/msl.hpp @@ -75,6 +75,7 @@ # define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX11_HDR_EXCEPTION #if defined(__has_include) #if !__has_include() diff --git a/3rdparty/boost/boost/config/stdlib/roguewave.hpp b/3rdparty/boost/boost/config/stdlib/roguewave.hpp index df6021551a..03a65768c0 100644 --- a/3rdparty/boost/boost/config/stdlib/roguewave.hpp +++ b/3rdparty/boost/boost/config/stdlib/roguewave.hpp @@ -59,7 +59,7 @@ // // Borland version of numeric_limits lacks __int64 specialisation: // -#ifdef __BORLANDC__ +#ifdef BOOST_BORLANDC # define BOOST_NO_MS_INT64_NUMERIC_LIMITS #endif @@ -187,6 +187,7 @@ # define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX11_HDR_EXCEPTION #if defined(__has_include) #if !__has_include() diff --git a/3rdparty/boost/boost/config/stdlib/sgi.hpp b/3rdparty/boost/boost/config/stdlib/sgi.hpp index 0c8ab2e4c1..c49957cef8 100644 --- a/3rdparty/boost/boost/config/stdlib/sgi.hpp +++ b/3rdparty/boost/boost/config/stdlib/sgi.hpp @@ -145,6 +145,7 @@ # define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX11_HDR_EXCEPTION #if defined(__has_include) #if !__has_include() diff --git a/3rdparty/boost/boost/config/stdlib/stlport.hpp b/3rdparty/boost/boost/config/stdlib/stlport.hpp index 2e304e2b94..38bc763f95 100644 --- a/3rdparty/boost/boost/config/stdlib/stlport.hpp +++ b/3rdparty/boost/boost/config/stdlib/stlport.hpp @@ -62,11 +62,11 @@ // 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__) +# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(BOOST_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__) +# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(BOOST_BORLANDC) # define BOOST_NO_STD_LOCALE # endif #endif @@ -128,7 +128,7 @@ // BCB6 does cause problems. If we detect C++ Builder, then don't define // BOOST_NO_STDC_NAMESPACE // -#if !defined(__BORLANDC__) && !defined(__DMC__) +#if !defined(BOOST_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 @@ -143,7 +143,7 @@ # define BOOST_NO_STDC_NAMESPACE # define BOOST_NO_EXCEPTION_STD_NAMESPACE # endif -#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560 +#elif defined(BOOST_BORLANDC) && BOOST_BORLANDC < 0x560 // STLport doesn't import std::abs correctly: #include namespace std { using ::abs; } @@ -192,7 +192,7 @@ namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; // Borland ships a version of STLport with C++ Builder 6 that lacks // hashtables and the like: // -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560) +#if defined(BOOST_BORLANDC) && (BOOST_BORLANDC == 0x560) # undef BOOST_HAS_HASH #endif @@ -235,6 +235,7 @@ namespace boost { using std::min; using std::max; } # define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX11_HDR_EXCEPTION #if defined(__has_include) #if !__has_include() diff --git a/3rdparty/boost/boost/config/stdlib/vacpp.hpp b/3rdparty/boost/boost/config/stdlib/vacpp.hpp index c4e1fb1847..b14dd65576 100644 --- a/3rdparty/boost/boost/config/stdlib/vacpp.hpp +++ b/3rdparty/boost/boost/config/stdlib/vacpp.hpp @@ -51,6 +51,7 @@ # define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX11_HDR_EXCEPTION #if defined(__has_include) #if !__has_include() diff --git a/3rdparty/boost/boost/config/stdlib/xlcpp_zos.hpp b/3rdparty/boost/boost/config/stdlib/xlcpp_zos.hpp index 4d5beb1855..a5e02fd8b8 100644 --- a/3rdparty/boost/boost/config/stdlib/xlcpp_zos.hpp +++ b/3rdparty/boost/boost/config/stdlib/xlcpp_zos.hpp @@ -50,6 +50,7 @@ #define BOOST_NO_CXX11_HDR_CHRONO #define BOOST_NO_CXX11_HDR_ATOMIC #define BOOST_NO_CXX11_HDR_ARRAY +#define BOOST_NO_CXX11_HDR_EXCEPTION #define BOOST_NO_CXX11_STD_ALIGN #define BOOST_NO_CXX14_STD_EXCHANGE diff --git a/3rdparty/boost/boost/config/user.hpp b/3rdparty/boost/boost/config/user.hpp index 28e7476afd..8160fcae25 100644 --- a/3rdparty/boost/boost/config/user.hpp +++ b/3rdparty/boost/boost/config/user.hpp @@ -1,8 +1,8 @@ // 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 +// 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, diff --git a/3rdparty/boost/boost/config/workaround.hpp b/3rdparty/boost/boost/config/workaround.hpp index fca8f3ab7e..7c6a2e62f1 100644 --- a/3rdparty/boost/boost/config/workaround.hpp +++ b/3rdparty/boost/boost/config/workaround.hpp @@ -50,6 +50,21 @@ #else #define __CODEGEARC___WORKAROUND_GUARD 0 #endif +#ifndef BOOST_BORLANDC +#define BOOST_BORLANDC_WORKAROUND_GUARD 1 +#else +#define BOOST_BORLANDC_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_CODEGEARC +#define BOOST_CODEGEARC_WORKAROUND_GUARD 1 +#else +#define BOOST_CODEGEARC_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_EMBTC +#define BOOST_EMBTC_WORKAROUND_GUARD 1 +#else +#define BOOST_EMBTC_WORKAROUND_GUARD 0 +#endif #ifndef _MSC_VER #define _MSC_VER_WORKAROUND_GUARD 1 #else diff --git a/3rdparty/boost/boost/container/container_fwd.hpp b/3rdparty/boost/boost/container/container_fwd.hpp index e4fe6f85c3..7855257e52 100644 --- a/3rdparty/boost/boost/container/container_fwd.hpp +++ b/3rdparty/boost/boost/container/container_fwd.hpp @@ -24,7 +24,9 @@ //! - boost::container::vector //! - boost::container::stable_vector //! - boost::container::static_vector +//! - boost::container::small_vector_base //! - boost::container::small_vector +//! - boost::container::devector //! - boost::container::slist //! - boost::container::list //! - boost::container::set @@ -90,101 +92,193 @@ namespace container { #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED +template +struct pair; + template class new_allocator; template - ,class Options = void> + ,class Allocator = void + ,class Options = void> class vector; template > + ,class Allocator = void > class stable_vector; -template +template < class T + , std::size_t Capacity + , class Options = void> class static_vector; -template < class T, std::size_t N - , class Allocator= new_allocator > +template < class T + , class Allocator = void + , class Options = void > +class small_vector_base; + +template < class T + , std::size_t N + , class Allocator = void + , class Options = void > class small_vector; template > + ,class Allocator = void + ,class Options = void> +class devector; + +template class deque; template > + ,class Allocator = void > class list; template > + ,class Allocator = void > class slist; template - ,class Allocator = new_allocator + ,class Allocator = void ,class Options = void> class set; template - ,class Allocator = new_allocator + ,class Allocator = void ,class Options = void > class multiset; template - ,class Allocator = new_allocator > + ,class Allocator = void ,class Options = void > class map; template - ,class Allocator = new_allocator > + ,class Allocator = void ,class Options = void > class multimap; template - ,class Allocator = new_allocator > + ,class Allocator = void > class flat_set; template - ,class Allocator = new_allocator > + ,class Allocator = void > class flat_multiset; template - ,class Allocator = new_allocator > > + ,class Allocator = void > class flat_map; template - ,class Allocator = new_allocator > > + ,class Allocator = void > class flat_multimap; +#ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES + +//! Alias templates for small_flat_[multi]{set|map} using small_vector as container + +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_set = flat_set>; + +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_multiset = flat_multiset>; + +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_map = flat_map, N, SmallVectorAllocator, SmallVectorOptions>>; + +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_multimap = flat_multimap, N, SmallVectorAllocator, SmallVectorOptions>>; + +#endif // #ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES + + +//! A portable metafunction to obtain a small_flat_set +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_set_of +{ + typedef flat_set > type; +}; + +//! A portable metafunction to obtain a small_flat_multiset +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_multiset_of +{ + typedef flat_multiset > type; +}; + +//! A portable metafunction to obtain a small_flat_map +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_map_of +{ + typedef flat_map, N, SmallVectorAllocator, SmallVectorOptions> > type; +}; + +//! A portable metafunction to obtain a small_flat_multimap +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_multimap_of +{ + typedef flat_multimap, N, SmallVectorAllocator, SmallVectorOptions> > type; +}; + template - ,class Allocator = new_allocator > + ,class Allocator = void > class basic_string; -typedef basic_string - - ,new_allocator > -string; - -typedef basic_string - - ,new_allocator > -wstring; +typedef basic_string string; +typedef basic_string wstring; static const std::size_t ADP_nodes_per_block = 256u; static const std::size_t ADP_max_free_blocks = 2u; diff --git a/3rdparty/boost/boost/container/detail/std_fwd.hpp b/3rdparty/boost/boost/container/detail/std_fwd.hpp index 09678123ff..a25c411e80 100644 --- a/3rdparty/boost/boost/container/detail/std_fwd.hpp +++ b/3rdparty/boost/boost/container/detail/std_fwd.hpp @@ -32,6 +32,9 @@ class allocator; template struct less; +template +struct equal_to; + template struct pair; diff --git a/3rdparty/boost/boost/container_hash/extensions.hpp b/3rdparty/boost/boost/container_hash/extensions.hpp index 4eebb4bc93..aa4f9cff8b 100644 --- a/3rdparty/boost/boost/container_hash/extensions.hpp +++ b/3rdparty/boost/boost/container_hash/extensions.hpp @@ -22,7 +22,6 @@ #include #include #include -#include #if !defined(BOOST_NO_CXX11_HDR_ARRAY) # include @@ -32,9 +31,7 @@ # include #endif -#if !defined(BOOST_NO_CXX11_HDR_MEMORY) -# include -#endif +#include #if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) #include @@ -71,56 +68,6 @@ namespace boost return seed; } - inline std::size_t hash_range( - std::vector::iterator first, - std::vector::iterator last) - { - std::size_t seed = 0; - - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - - return seed; - } - - inline std::size_t hash_range( - std::vector::const_iterator first, - std::vector::const_iterator last) - { - std::size_t seed = 0; - - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - - return seed; - } - - inline void hash_range( - std::size_t& seed, - std::vector::iterator first, - std::vector::iterator last) - { - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - } - - inline void hash_range( - std::size_t& seed, - std::vector::const_iterator first, - std::vector::const_iterator last) - { - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - } - template std::size_t hash_value(std::vector const& v) { diff --git a/3rdparty/boost/boost/container_hash/hash.hpp b/3rdparty/boost/boost/container_hash/hash.hpp index 76de7939eb..6059fee19c 100644 --- a/3rdparty/boost/boost/container_hash/hash.hpp +++ b/3rdparty/boost/boost/container_hash/hash.hpp @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -118,7 +119,7 @@ namespace boost { namespace hash_detail { -#if defined(_HAS_AUTO_PTR_ETC) && !_HAS_AUTO_PTR_ETC +#if defined(BOOST_NO_CXX98_FUNCTION_BASE) template struct hash_base { @@ -426,7 +427,7 @@ namespace boost for(; first != last; ++first) { - hash_combine(seed, *first); + hash_combine::value_type>(seed, *first); } return seed; @@ -437,11 +438,11 @@ namespace boost { for(; first != last; ++first) { - hash_combine(seed, *first); + hash_combine::value_type>(seed, *first); } } -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) +#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x551)) template inline std::size_t hash_range(T* first, T* last) { diff --git a/3rdparty/boost/boost/container_hash/hash_fwd.hpp b/3rdparty/boost/boost/container_hash/hash_fwd.hpp index a87c182d39..46340b3f4a 100644 --- a/3rdparty/boost/boost/container_hash/hash_fwd.hpp +++ b/3rdparty/boost/boost/container_hash/hash_fwd.hpp @@ -27,7 +27,7 @@ namespace boost template std::size_t hash_range(It, It); template void hash_range(std::size_t&, It, It); -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) +#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x551)) template inline std::size_t hash_range(T*, T*); template inline void hash_range(std::size_t&, T*, T*); #endif diff --git a/3rdparty/boost/boost/core/addressof.hpp b/3rdparty/boost/boost/core/addressof.hpp index f7eab06ba7..5473c36a59 100644 --- a/3rdparty/boost/boost/core/addressof.hpp +++ b/3rdparty/boost/boost/core/addressof.hpp @@ -125,7 +125,7 @@ template BOOST_FORCEINLINE T* addressof(T& o) BOOST_NOEXCEPT { -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) || \ +#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) || \ BOOST_WORKAROUND(__SUNPRO_CC, <= 0x5120) return boost::detail::addrof::get(o, 0); #else @@ -151,7 +151,7 @@ addressof(T (&o)[N]) BOOST_NOEXCEPT } #endif -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564)) template BOOST_FORCEINLINE T (*addressof(T (&o)[N]) BOOST_NOEXCEPT)[N] diff --git a/3rdparty/boost/boost/core/allocator_access.hpp b/3rdparty/boost/boost/core/allocator_access.hpp new file mode 100644 index 0000000000..b3ea62b86f --- /dev/null +++ b/3rdparty/boost/boost/core/allocator_access.hpp @@ -0,0 +1,633 @@ +/* +Copyright 2020 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_CORE_ALLOCATOR_ACCESS_HPP +#define BOOST_CORE_ALLOCATOR_ACCESS_HPP + +#include +#if !defined(BOOST_NO_CXX11_ALLOCATOR) +#include +#if !defined(BOOST_MSVC) +#include +#else +#include +#endif +#include +#endif +#include +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#include +#endif + +namespace boost { +namespace detail { + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +struct alloc_false { + BOOST_STATIC_CONSTEXPR bool value = false; +}; +#else +template +struct alloc_void { + typedef void type; +}; +#endif + +} /* detail */ + +template +struct allocator_value_type { + typedef typename A::value_type type; +}; + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_pointer { + typedef typename A::pointer type; +}; +#elif defined(BOOST_MSVC) +template +struct allocator_pointer { + typedef typename std::allocator_traits::pointer type; +}; +#else +template +struct allocator_pointer { + typedef typename A::value_type* type; +}; + +template +struct allocator_pointer::type> { + typedef typename A::pointer type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_const_pointer { + typedef typename A::const_pointer type; +}; +#elif defined(BOOST_MSVC) +template +struct allocator_const_pointer { + typedef typename std::allocator_traits::const_pointer type; +}; +#else +template +struct allocator_const_pointer { + typedef typename pointer_traits::type>::template + rebind_to::type type; +}; + +template +struct allocator_const_pointer::type> { + typedef typename A::const_pointer type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_void_pointer { + typedef typename A::template rebind::other::pointer type; +}; +#else +template +struct allocator_void_pointer { + typedef typename pointer_traits::type>::template + rebind_to::type type; +}; + +template +struct allocator_void_pointer::type> { + typedef typename A::void_pointer type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_const_void_pointer { + typedef typename A::template rebind::other::const_pointer type; +}; +#else +template +struct allocator_const_void_pointer { + typedef typename pointer_traits::type>::template + rebind_to::type type; +}; + +template +struct allocator_const_void_pointer::type> { + typedef typename A::const_void_pointer type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_difference_type { + typedef typename A::difference_type type; +}; +#elif defined(BOOST_MSVC) +template +struct allocator_difference_type { + typedef typename std::allocator_traits::difference_type type; +}; +#else +template +struct allocator_difference_type { + typedef typename pointer_traits::type>::difference_type type; +}; + +template +struct allocator_difference_type::type> { + typedef typename A::difference_type type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_size_type { + typedef typename A::size_type type; +}; +#elif defined(BOOST_MSVC) +template +struct allocator_size_type { + typedef typename std::allocator_traits::size_type type; +}; +#else +template +struct allocator_size_type { + typedef typename std::make_unsigned::type>::type type; +}; + +template +struct allocator_size_type::type> { + typedef typename A::size_type type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_propagate_on_container_copy_assignment { + typedef detail::alloc_false type; +}; +#else +template +struct allocator_propagate_on_container_copy_assignment { + typedef std::false_type type; +}; + +template +struct allocator_propagate_on_container_copy_assignment::type> { + typedef typename A::propagate_on_container_copy_assignment type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_propagate_on_container_move_assignment { + typedef detail::alloc_false type; +}; +#else +template +struct allocator_propagate_on_container_move_assignment { + typedef std::false_type type; +}; + +template +struct allocator_propagate_on_container_move_assignment::type> { + typedef typename A::propagate_on_container_move_assignment type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_propagate_on_container_swap { + typedef detail::alloc_false type; +}; +#else +template +struct allocator_propagate_on_container_swap { + typedef std::false_type type; +}; + +template +struct allocator_propagate_on_container_swap::type> { + typedef typename A::propagate_on_container_swap type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_is_always_equal { + typedef detail::alloc_false type; +}; +#else +template +struct allocator_is_always_equal { + typedef typename std::is_empty::type type; +}; + +template +struct allocator_is_always_equal::type> { + typedef typename A::is_always_equal type; +}; +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +struct allocator_rebind { + typedef typename A::template rebind::other type; +}; +#elif defined(BOOST_MSVC) +template +struct allocator_rebind { + typedef typename std::allocator_traits::template rebind_alloc type; +}; +#else +namespace detail { + +template +struct alloc_to { }; + +template class A, class T, class U, class... V> +struct alloc_to, T> { + typedef A type; +}; + +} /* detail */ + +template +struct allocator_rebind { + typedef typename detail::alloc_to::type type; +}; + +template +struct allocator_rebind::other>::type> { + typedef typename A::template rebind::other type; +}; +#endif + +template +inline typename allocator_pointer::type +allocator_allocate(A& a, typename allocator_size_type::type n) +{ + return a.allocate(n); +} + +template +inline void +allocator_deallocate(A& a, typename allocator_pointer::type p, + typename allocator_size_type::type n) +{ + a.deallocate(p, n); +} + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +inline typename allocator_pointer::type +allocator_allocate(A& a, typename allocator_size_type::type n, + typename allocator_const_void_pointer::type h) +{ + return a.allocate(n, h); +} +#elif defined(BOOST_MSVC) +template +inline typename allocator_pointer::type +allocator_allocate(A& a, typename allocator_size_type::type n, + typename allocator_const_void_pointer::type h) +{ + return std::allocator_traits::allocate(a, n, h); +} +#else +namespace detail { + +template +struct alloc_has_allocate { + BOOST_STATIC_CONSTEXPR bool value = false; +}; + +template +struct alloc_has_allocate().allocate(std::declval(), + std::declval()))>::type> { + BOOST_STATIC_CONSTEXPR bool value = true; +}; + +} /* detail */ + +template +inline typename std::enable_if::type, + typename allocator_const_void_pointer::type>::value, + typename allocator_pointer::type>::type +allocator_allocate(A& a, typename allocator_size_type::type n, + typename allocator_const_void_pointer::type h) +{ + return a.allocate(n, h); +} + +template +inline typename std::enable_if::type, + typename allocator_const_void_pointer::type>::value, + typename allocator_pointer::type>::type +allocator_allocate(A& a, typename allocator_size_type::type n, + typename allocator_const_void_pointer::type) +{ + return a.allocate(n); +} +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +inline void +allocator_construct(A&, T* p) +{ + ::new((void*)p) T(); +} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +template +inline void +allocator_construct(A&, T* p, V&& v, Args&&... args) +{ + ::new((void*)p) T(std::forward(v), std::forward(args)...); +} +#else +template +inline void +allocator_construct(A&, T* p, V&& v) +{ + ::new((void*)p) T(std::forward(v)); +} +#endif +#else +template +inline void +allocator_construct(A&, T* p, const V& v) +{ + ::new((void*)p) T(v); +} + +template +inline void +allocator_construct(A&, T* p, V& v) +{ + ::new((void*)p) T(v); +} +#endif +#elif defined(BOOST_MSVC) +template +inline void +allocator_construct(A& a, T* p, Args&&... args) +{ + std::allocator_traits::construct(a, p, std::forward(args)...); +} +#else +namespace detail { + +template +struct alloc_has_construct { + BOOST_STATIC_CONSTEXPR bool value = false; +}; + +template +struct alloc_has_construct().construct(std::declval(), std::declval()...))>::type, + A, T, Args...> { + BOOST_STATIC_CONSTEXPR bool value = true; +}; + +} /* detail */ + +template +inline typename std::enable_if::value>::type +allocator_construct(A& a, T* p, Args&&... args) +{ + a.construct(p, std::forward(args)...); +} + +template +inline typename std::enable_if::value>::type +allocator_construct(A&, T* p, Args&&... args) +{ + ::new((void*)p) T(std::forward(args)...); +} +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +inline void +allocator_destroy(A&, T* p) +{ + p->~T(); + (void)p; +} +#elif defined(BOOST_MSVC) +template +inline void +allocator_destroy(A& a, T* p) +{ + std::allocator_traits::destroy(a, p); +} +#else +namespace detail { + +template +struct alloc_has_destroy { + BOOST_STATIC_CONSTEXPR bool value = false; +}; + +template +struct alloc_has_destroy().destroy(std::declval()))>::type> { + BOOST_STATIC_CONSTEXPR bool value = true; +}; + +} /* detail */ + +template +inline typename std::enable_if::value>::type +allocator_destroy(A& a, T* p) +{ + a.destroy(p); +} + +template +inline typename std::enable_if::value>::type +allocator_destroy(A&, T* p) +{ + p->~T(); + (void)p; +} +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +inline typename allocator_size_type::type +allocator_max_size(const A& a) +{ + return a.max_size(); +} +#elif defined(BOOST_MSVC) +template +inline typename allocator_size_type::type +allocator_max_size(const A& a) +{ + return std::allocator_traits::max_size(a); +} +#else +namespace detail { + +template +struct alloc_has_max_size { + BOOST_STATIC_CONSTEXPR bool value = false; +}; + +template +struct alloc_has_max_size().max_size())>::type> { + BOOST_STATIC_CONSTEXPR bool value = true; +}; + +} /* detail */ + +template +inline typename std::enable_if::value, + typename allocator_size_type::type>::type +allocator_max_size(const A& a) +{ + return a.max_size(); +} + +template +inline typename std::enable_if::value, + typename allocator_size_type::type>::type +allocator_max_size(const A&) +{ + return (std::numeric_limits::type>::max)() / sizeof(typename A::value_type); +} +#endif + +#if defined(BOOST_NO_CXX11_ALLOCATOR) +template +inline A +allocator_select_on_container_copy_construction(const A& a) +{ + return a; +} +#elif defined(BOOST_MSVC) +template +inline A +allocator_select_on_container_copy_construction(const A& a) +{ + return std::allocator_traits::select_on_container_copy_construction(a); +} +#else +namespace detail { + +template +struct alloc_has_soccc { + BOOST_STATIC_CONSTEXPR bool value = false; +}; + +template +struct alloc_has_soccc().select_on_container_copy_construction())>::type> { + BOOST_STATIC_CONSTEXPR bool value = true; +}; + +} /* detail */ + +template +inline typename std::enable_if::value, A>::type +allocator_select_on_container_copy_construction(const A& a) +{ + return a.select_on_container_copy_construction(); +} + +template +inline typename std::enable_if::value, A>::type +allocator_select_on_container_copy_construction(const A& a) +{ + return a; +} +#endif + +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) +template +using allocator_value_type_t = typename allocator_value_type::type; + +template +using allocator_pointer_t = typename allocator_pointer::type; + +template +using allocator_const_pointer_t = typename allocator_const_pointer::type; + +template +using allocator_void_pointer_t = typename allocator_void_pointer::type; + +template +using allocator_const_void_pointer_t = + typename allocator_const_void_pointer::type; + +template +using allocator_difference_type_t = + typename allocator_difference_type::type; + +template +using allocator_size_type_t = typename allocator_size_type::type; + +template +using allocator_propagate_on_container_copy_assignment_t = + typename allocator_propagate_on_container_copy_assignment::type; + +template +using allocator_propagate_on_container_move_assignment_t = + typename allocator_propagate_on_container_move_assignment::type; + +template +using allocator_propagate_on_container_swap_t = + typename allocator_propagate_on_container_swap::type; + +template +using allocator_is_always_equal_t = + typename allocator_is_always_equal::type; + +template +using allocator_rebind_t = typename allocator_rebind::type; +#endif + +} /* boost */ + +#endif diff --git a/3rdparty/boost/boost/core/checked_delete.hpp b/3rdparty/boost/boost/core/checked_delete.hpp index b086e03e88..6af5c14119 100644 --- a/3rdparty/boost/boost/core/checked_delete.hpp +++ b/3rdparty/boost/boost/core/checked_delete.hpp @@ -7,6 +7,8 @@ # pragma once #endif +#include + // // boost/checked_delete.hpp // @@ -26,7 +28,7 @@ namespace boost // verify that types are complete for increased safety -template inline void checked_delete(T * x) +template inline void checked_delete(T * x) BOOST_NOEXCEPT { // intentionally complex - simplification causes regressions typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; @@ -34,7 +36,7 @@ template inline void checked_delete(T * x) delete x; } -template inline void checked_array_delete(T * x) +template inline void checked_array_delete(T * x) BOOST_NOEXCEPT { typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; (void) sizeof(type_must_be_complete); @@ -46,7 +48,7 @@ template struct checked_deleter typedef void result_type; typedef T * argument_type; - void operator()(T * x) const + void operator()(T * x) const BOOST_NOEXCEPT { // boost:: disables ADL boost::checked_delete(x); @@ -58,7 +60,7 @@ template struct checked_array_deleter typedef void result_type; typedef T * argument_type; - void operator()(T * x) const + void operator()(T * x) const BOOST_NOEXCEPT { boost::checked_array_delete(x); } diff --git a/3rdparty/boost/boost/core/explicit_operator_bool.hpp b/3rdparty/boost/boost/core/explicit_operator_bool.hpp index a8936e2cd6..d689f114d3 100644 --- a/3rdparty/boost/boost/core/explicit_operator_bool.hpp +++ b/3rdparty/boost/boost/core/explicit_operator_bool.hpp @@ -19,6 +19,7 @@ #define BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP #include +#include #ifdef BOOST_HAS_PRAGMA_ONCE #pragma once @@ -52,6 +53,8 @@ return !this->operator! ();\ } +#if !BOOST_WORKAROUND(BOOST_GCC, < 40700) + /*! * \brief The macro defines a constexpr explicit operator of conversion to \c bool * @@ -65,6 +68,12 @@ return !this->operator! ();\ } +#else + +#define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL() BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT() + +#endif + #else // !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) #if (defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)) && !defined(BOOST_NO_COMPILER_CONFIG) diff --git a/3rdparty/boost/boost/core/no_exceptions_support.hpp b/3rdparty/boost/boost/core/no_exceptions_support.hpp index e2453d084b..1278e85688 100644 --- a/3rdparty/boost/boost/core/no_exceptions_support.hpp +++ b/3rdparty/boost/boost/core/no_exceptions_support.hpp @@ -29,12 +29,24 @@ # define BOOST_RETHROW throw; # define BOOST_CATCH_END } #else -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +# if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564)) # define BOOST_TRY { if ("") # define BOOST_CATCH(x) else if (!"") -# else +# elif !defined(BOOST_MSVC) || BOOST_MSVC >= 1900 # define BOOST_TRY { if (true) # define BOOST_CATCH(x) else if (false) +# else + // warning C4127: conditional expression is constant +# define BOOST_TRY { \ + __pragma(warning(push)) \ + __pragma(warning(disable: 4127)) \ + if (true) \ + __pragma(warning(pop)) +# define BOOST_CATCH(x) else \ + __pragma(warning(push)) \ + __pragma(warning(disable: 4127)) \ + if (false) \ + __pragma(warning(pop)) # endif # define BOOST_RETHROW # define BOOST_CATCH_END } diff --git a/3rdparty/boost/boost/core/noncopyable.hpp b/3rdparty/boost/boost/core/noncopyable.hpp index 6ae8c244dd..4a4f8baba5 100644 --- a/3rdparty/boost/boost/core/noncopyable.hpp +++ b/3rdparty/boost/boost/core/noncopyable.hpp @@ -20,7 +20,22 @@ namespace boost { namespace noncopyable_ // protection from unintended ADL { - class noncopyable +#ifndef BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED +#define BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED + +// noncopyable derives from base_token to enable Type Traits to detect +// whether a type derives from noncopyable without needing the definition +// of noncopyable itself. +// +// The definition of base_token is macro-guarded so that Type Trais can +// define it locally without including this header, to avoid a dependency +// on Core. + + struct base_token {}; + +#endif // #ifndef BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED + + class noncopyable: base_token { protected: #if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) diff --git a/3rdparty/boost/boost/core/pointer_traits.hpp b/3rdparty/boost/boost/core/pointer_traits.hpp new file mode 100644 index 0000000000..e66194d603 --- /dev/null +++ b/3rdparty/boost/boost/core/pointer_traits.hpp @@ -0,0 +1,234 @@ +/* +Copyright 2017-2018 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_CORE_POINTER_TRAITS_HPP +#define BOOST_CORE_POINTER_TRAITS_HPP + +#include +#if !defined(BOOST_NO_CXX11_POINTER_TRAITS) +#include +#else +#include +#include +#endif + +namespace boost { + +#if !defined(BOOST_NO_CXX11_POINTER_TRAITS) +template +struct pointer_traits + : std::pointer_traits { + template + struct rebind_to { + typedef typename std::pointer_traits::template rebind type; + }; +}; + +template +struct pointer_traits + : std::pointer_traits { + template + struct rebind_to { + typedef U* type; + }; +}; +#else +namespace detail { + +template +struct ptr_void { + typedef void type; +}; + +template +struct ptr_first; + +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +template class T, class U, class... Args> +struct ptr_first > { + typedef U type; +}; +#else +template class T, class U> +struct ptr_first > { + typedef U type; +}; + +template class T, class U1, class U2> +struct ptr_first > { + typedef U1 type; +}; + +template class T, class U1, class U2, class U3> +struct ptr_first > { + typedef U1 type; +}; +#endif + +template +struct ptr_element { + typedef typename ptr_first::type type; +}; + +template +struct ptr_element::type> { + typedef typename T::element_type type; +}; + +template +struct ptr_difference { + typedef std::ptrdiff_t type; +}; + +template +struct ptr_difference::type> { + typedef typename T::difference_type type; +}; + +template +struct ptr_transform; + +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +template class T, class U, class... Args, class V> +struct ptr_transform, V> { + typedef T type; +}; +#else +template class T, class U, class V> +struct ptr_transform, V> { + typedef T type; +}; + +template class T, class U1, class U2, class V> +struct ptr_transform, V> { + typedef T type; +}; + +template class T, + class U1, class U2, class U3, class V> +struct ptr_transform, V> { + typedef T type; +}; +#endif + +template +struct ptr_rebind { + typedef typename ptr_transform::type type; +}; + +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) +template +struct ptr_rebind >::type> { + typedef typename T::template rebind type; +}; +#endif + +template +struct ptr_value { + typedef T type; +}; + +template<> +struct ptr_value { + typedef struct { } type; +}; + +} /* detail */ + +template +struct pointer_traits { + typedef T pointer; + typedef typename detail::ptr_element::type element_type; + typedef typename detail::ptr_difference::type difference_type; + template + struct rebind_to { + typedef typename detail::ptr_rebind::type type; + }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + template + using rebind = typename detail::ptr_rebind::type; +#endif + static pointer + pointer_to(typename detail::ptr_value::type& v) { + return pointer::pointer_to(v); + } +}; + +template +struct pointer_traits { + typedef T* pointer; + typedef T element_type; + typedef std::ptrdiff_t difference_type; + template + struct rebind_to { + typedef U* type; + }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + template + using rebind = U*; +#endif + static T* + pointer_to(typename detail::ptr_value::type& v) BOOST_NOEXCEPT { + return boost::addressof(v); + } +}; +#endif + +template +BOOST_CONSTEXPR inline T* +to_address(T* v) BOOST_NOEXCEPT +{ + return v; +} + +#if !defined(BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION) +namespace detail { + +template +inline T* +ptr_address(T* v, int) BOOST_NOEXCEPT +{ + return v; +} + +template +inline auto +ptr_address(const T& v, int) BOOST_NOEXCEPT +-> decltype(boost::pointer_traits::to_address(v)) +{ + return boost::pointer_traits::to_address(v); +} + +template +inline auto +ptr_address(const T& v, long) BOOST_NOEXCEPT +{ + return boost::detail::ptr_address(v.operator->(), 0); +} + +} /* detail */ + +template +inline auto +to_address(const T& v) BOOST_NOEXCEPT +{ + return boost::detail::ptr_address(v, 0); +} +#else +template +inline typename pointer_traits::element_type* +to_address(const T& v) BOOST_NOEXCEPT +{ + return boost::to_address(v.operator->()); +} +#endif + +} /* boost */ + +#endif diff --git a/3rdparty/boost/boost/core/ref.hpp b/3rdparty/boost/boost/core/ref.hpp index 7d768ffc75..79f0b63c83 100644 --- a/3rdparty/boost/boost/core/ref.hpp +++ b/3rdparty/boost/boost/core/ref.hpp @@ -19,7 +19,8 @@ // Copyright (C) 2002 David Abrahams // // Copyright (C) 2014 Glen Joseph Fernandes -// glenfe at live dot com +// (glenjofe@gmail.com) +// // Copyright (C) 2014 Agustin Berge // // Distributed under the Boost Software License, Version 1.0. (See @@ -115,7 +116,7 @@ private: /** @cond */ -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) +#if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x581) ) # define BOOST_REF_CONST #else # define BOOST_REF_CONST const diff --git a/3rdparty/boost/boost/core/swap.hpp b/3rdparty/boost/boost/core/swap.hpp index baa1be970d..49e1b2dbb6 100644 --- a/3rdparty/boost/boost/core/swap.hpp +++ b/3rdparty/boost/boost/core/swap.hpp @@ -21,13 +21,22 @@ // avoid ambiguity when swapping objects of a Boost type that does // not have its own boost::swap overload. -#include //for std::swap (C++11) -#include //for std::swap (C++98) -#include //for std::size_t +#include #include +#if __cplusplus >= 201103L || defined(BOOST_DINKUMWARE_STDLIB) +#include // for std::swap (C++11) +#else +#include // for std::swap (C++98) +#endif +#include // for std::size_t namespace boost_swap_impl { + // we can't use type_traits here + + template struct is_const { enum _vt { value = 0 }; }; + template struct is_const { enum _vt { value = 1 }; }; + template BOOST_GPU_ENABLED void swap_impl(T& left, T& right) @@ -51,7 +60,8 @@ namespace boost { template BOOST_GPU_ENABLED - void swap(T1& left, T2& right) + typename enable_if_c< !boost_swap_impl::is_const::value && !boost_swap_impl::is_const::value >::type + swap(T1& left, T2& right) { ::boost_swap_impl::swap_impl(left, right); } diff --git a/3rdparty/boost/boost/core/typeinfo.hpp b/3rdparty/boost/boost/core/typeinfo.hpp index e67b4a3198..d33d29ba68 100644 --- a/3rdparty/boost/boost/core/typeinfo.hpp +++ b/3rdparty/boost/boost/core/typeinfo.hpp @@ -21,6 +21,7 @@ #include #include +#include namespace boost { @@ -36,26 +37,43 @@ private: typeinfo& operator=( typeinfo const& ); char const * name_; + void (*lib_id_)(); public: - explicit typeinfo( char const * name ): name_( name ) + typeinfo( char const * name, void (*lib_id)() ): name_( name ), lib_id_( lib_id ) { } bool operator==( typeinfo const& rhs ) const { +#if ( defined(_WIN32) || defined(__CYGWIN__) ) && ( defined(__GNUC__) || defined(__clang__) ) && !defined(BOOST_DISABLE_CURRENT_FUNCTION) + + return lib_id_ == rhs.lib_id_? this == &rhs: std::strcmp( name_, rhs.name_ ) == 0; + +#else + return this == &rhs; + +#endif } bool operator!=( typeinfo const& rhs ) const { - return this != &rhs; + return !( *this == rhs ); } bool before( typeinfo const& rhs ) const { +#if ( defined(_WIN32) || defined(__CYGWIN__) ) && ( defined(__GNUC__) || defined(__clang__) ) && !defined(BOOST_DISABLE_CURRENT_FUNCTION) + + return lib_id_ == rhs.lib_id_? std::less< typeinfo const* >()( this, &rhs ): std::strcmp( name_, rhs.name_ ) < 0; + +#else + return std::less< typeinfo const* >()( this, &rhs ); + +#endif } char const* name() const @@ -74,7 +92,7 @@ inline char const * demangled_name( core::typeinfo const & ti ) namespace detail { -template struct core_typeid_ +template struct BOOST_SYMBOL_VISIBLE core_typeid_ { static boost::core::typeinfo ti_; @@ -84,13 +102,11 @@ template struct core_typeid_ } }; -#if defined(__SUNPRO_CC) -// see #4199, the Sun Studio compiler gets confused about static initialization -// constructor arguments. But an assignment works just fine. -template boost::core::typeinfo core_typeid_< T >::ti_ = core_typeid_< T >::name(); -#else -template boost::core::typeinfo core_typeid_< T >::ti_(core_typeid_< T >::name()); -#endif +BOOST_SYMBOL_VISIBLE inline void core_typeid_lib_id() +{ +} + +template boost::core::typeinfo core_typeid_< T >::ti_( core_typeid_< T >::name(), &core_typeid_lib_id ); template struct core_typeid_< T & >: core_typeid_< T > { diff --git a/3rdparty/boost/boost/core/use_default.hpp b/3rdparty/boost/boost/core/use_default.hpp new file mode 100644 index 0000000000..9d9be79d80 --- /dev/null +++ b/3rdparty/boost/boost/core/use_default.hpp @@ -0,0 +1,17 @@ +/* +Copyright 2019 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_CORE_USE_DEFAULT_HPP +#define BOOST_CORE_USE_DEFAULT_HPP + +namespace boost { + +struct use_default { }; + +} /* boost */ + +#endif diff --git a/3rdparty/boost/boost/crc.hpp b/3rdparty/boost/boost/crc.hpp index 6be5aa1d8b..edd66b0daa 100644 --- a/3rdparty/boost/boost/crc.hpp +++ b/3rdparty/boost/boost/crc.hpp @@ -1,16 +1,47 @@ // 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 .) +// Copyright 2001, 2004, 2011 Daryle Walker. +// Distributed under the Boost Software License, Version 1.0. (See the +// accompanying file LICENSE_1_0.txt or a copy at +// .) // See for the library's home page. +/** \file + \brief A collection of function templates and class templates that compute + various forms of Cyclic Redundancy Codes (CRCs). + + \author Daryle Walker + + \version 1.5 + + \copyright Boost Software License, version 1.0 + + Contains the declarations (and definitions) of various kinds of CRC + computation functions, function object types, and encapsulated policy types. + + \warning The sample CRC-computer types were just checked against the + Catalogue of + parametrised CRC algorithms. New type aliases were added where I got + a standard wrong. However, the mistaken typedefs are still + there for backwards compatibility. + \note There are references to the Rocksoft™ Model CRC + Algorithm, as described within \"A Painless Guide to CRC Error + Detection Algorithms,\" linked from \"CRC: A Paper On CRCs\" by + Ross Williams. It will be abbreviated \"RMCA\" in other documentation + blocks. + */ + #ifndef BOOST_CRC_HPP #define BOOST_CRC_HPP -#include // for BOOST_STATIC_CONSTANT, etc. -#include // for boost::uint_t +#include // for boost::array +#include // for BOOST_STATIC_CONSTANT, etc. +#include // for UINTMAX_C, boost::uintmax_t +#include // for boost::uint_t +#include +#include #include // for CHAR_BIT, etc. #include // for std::size_t @@ -22,78 +53,58 @@ // 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))) +#if !(defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS)) #define BOOST_CRC_PARM_TYPE typename ::boost::uint_t::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 *p_ -#define BOOST_CRC_DUMMY_INIT BOOST_CRC_DUMMY_PARM_TYPE = 0 -#define BOOST_ACRC_DUMMY_PARM_TYPE , detail::dummy_crc_argument *p_ -#define BOOST_ACRC_DUMMY_INIT BOOST_ACRC_DUMMY_PARM_TYPE = 0 -#endif - - namespace boost { // Forward declarations ----------------------------------------------------// +//! Bit-wise CRC computer template < std::size_t Bits > class crc_basic; +//! Table-driven CRC computer, usable as a function object 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; +//! Compute the (unaugmented) CRC of a memory block 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::fast crc( void const *buffer, - std::size_t byte_count - BOOST_CRC_DUMMY_PARM_TYPE ); + std::size_t byte_count); +//! Compute the CRC of a memory block, with any augmentation provided by user template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly > typename uint_t::fast augmented_crc( void const *buffer, - std::size_t byte_count, typename uint_t::fast initial_remainder - BOOST_ACRC_DUMMY_PARM_TYPE ); - -template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly > - typename uint_t::fast augmented_crc( void const *buffer, - std::size_t byte_count - BOOST_ACRC_DUMMY_PARM_TYPE ); + std::size_t byte_count, + typename uint_t::fast initial_remainder = 0u); +//! Computation type for ARC|CRC-16|CRC-IBM|CRC-16/ARC|CRC-16/LHA standard typedef crc_optimal<16, 0x8005, 0, 0, true, true> crc_16_type; -typedef crc_optimal<16, 0x1021, 0xFFFF, 0, false, false> crc_ccitt_type; +//! Computation type for CRC-16/CCITT-FALSE standard +typedef crc_optimal<16, 0x1021, 0xFFFF, 0, false, false> crc_ccitt_false_t; +//! Computation type for the CRC mistakenly called the CCITT standard +typedef crc_ccitt_false_t crc_ccitt_type; +//! Computation type for the actual +//! KERMIT|CRC-16/CCITT|CRC-16/CCITT-TRUE|CRC-CCITT standard +typedef crc_optimal<16, 0x1021, 0, 0, true, true> crc_ccitt_true_t; +//! Computation type that I mistakenly called the XMODEM standard; it inverts +//! both reflection parameters and reflects the truncated divisor (Don't use?!) typedef crc_optimal<16, 0x8408, 0, 0, true, true> crc_xmodem_type; +//! Computation type for the actual XMODEM|ZMODEM|CRC-16/ACORN standard +typedef crc_optimal<16, 0x1021, 0, 0, false, false> crc_xmodem_t; +//! Computation type for CRC-32|CRC-32/ADCCP|PKZIP standard typedef crc_optimal<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true> crc_32_type; @@ -101,81 +112,90 @@ typedef crc_optimal<32, 0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, true> // Forward declarations for implementation detail stuff --------------------// // (Just for the stuff that will be needed for the next two sections) +//! \cond namespace detail { - template < std::size_t Bits > - struct mask_uint_t; + //! Mix-in class to add a possibly-reflecting member function + template < int BitLength, bool DoIt, int Id = 0 > + class possible_reflector; - template < > - struct mask_uint_t< std::numeric_limits::digits >; - - #if USHRT_MAX > UCHAR_MAX - template < > - struct mask_uint_t< std::numeric_limits::digits >; - #endif - - #if UINT_MAX > USHRT_MAX - template < > - struct mask_uint_t< std::numeric_limits::digits >; - #endif - - #if ULONG_MAX > UINT_MAX - template < > - struct mask_uint_t< std::numeric_limits::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 + //! Mix-in class for byte-fed, table-driven CRC algorithms + template < int Order, boost::uintmax_t TruncatedPolynomial, bool Reflect, + int Id = 0 > + class crc_driver; } // namespace detail +//! \endcond // Simple cyclic redundancy code (CRC) class declaration -------------------// +/** Objects of this type compute the CRC checksum of submitted data, where said + data can be entered piecemeal through several different kinds of groupings. + Modulo-2 polynomial division steps are always performed bit-wise, without + the use of pre-computation tables. Said division uses the altered + algorithm, so any data has to be unaugmented. + + \pre 0 \< \a Bits \<= \c std\::numeric_limits\\::digits + + \tparam Bits The order of the modulo-2 polynomial divisor. (\e Width from + the RMCA) + */ template < std::size_t Bits > class crc_basic { - // Implementation type - typedef detail::mask_uint_t masking_type; - public: // Type - typedef typename masking_type::least value_type; + /** \brief The register type used for computations + + This type is used for CRC calculations and is the type for any returned + checksums and returned or submitted remainders, (truncated) divisors, or + XOR masks. It is a built-in unsigned integer type. + */ + typedef typename boost::uint_t::fast value_type; // Constant for the template parameter + //! A copy of \a Bits provided for meta-programming purposes BOOST_STATIC_CONSTANT( std::size_t, bit_count = Bits ); - // Constructor - explicit crc_basic( value_type truncated_polynominal, + // Constructor (use the automatic copy-ctr, move-ctr, and dtr) + //! Create a computer, separately listing each needed parameter + explicit crc_basic( value_type truncated_polynomial, value_type initial_remainder = 0, value_type final_xor_value = 0, bool reflect_input = false, bool reflect_remainder = false ); // Internal Operations + //! Return the (truncated) polynomial divisor value_type get_truncated_polynominal() const; + //! Return what the polynomial remainder was set to during construction value_type get_initial_remainder() const; + //! Return the XOR-mask used during output processing value_type get_final_xor_value() const; + //! Check if input-bytes will be reflected before processing bool get_reflect_input() const; + //! Check if the remainder will be reflected during output processing bool get_reflect_remainder() const; + //! Return the remainder based from already-processed bits value_type get_interim_remainder() const; + //! Change the interim remainder to a new value void reset( value_type new_rem ); + //! Change the interim remainder back to the initial value void reset(); // External Operations + //! Submit a single bit for input processing void process_bit( bool bit ); - void process_bits( unsigned char bits, std::size_t bit_count ); + //! Submit the lowest \a bit_length bits of a byte for input processing + void process_bits( unsigned char bits, std::size_t bit_length ); + //! Submit a single byte for input processing void process_byte( unsigned char byte ); + //! Submit a memory block for input processing, iterator-pair style void process_block( void const *bytes_begin, void const *bytes_end ); + //! Submit a memory block for input processing, pointer-and-size style void process_bytes( void const *buffer, std::size_t byte_count ); + //! Return the checksum of the already-processed bits value_type checksum() const; private: @@ -189,67 +209,106 @@ private: // Optimized cyclic redundancy code (CRC) class declaration ----------------// +/** Objects of this type compute the CRC checksum of submitted data, where said + data can be entered piecemeal through several different kinds of groupings. + Modulo-2 polynomial division steps are performed byte-wise, aided by the use + of pre-computation tables. Said division uses the altered algorithm, so any + data has to be unaugmented. + + \pre 0 \< \a Bits \<= \c std\::numeric_limits\\::digits + + \tparam Bits The order of the modulo-2 polynomial divisor. (\e Width from + the RMCA) + \tparam TruncPoly The lowest coefficients of the divisor polynomial. The + highest-order coefficient is omitted and always assumed to be 1. Defaults + to \c 0, i.e. the only non-zero term is the implicit one for + xBits. (\e Poly from the RMCA) + \tparam InitRem The (unaugmented) initial state of the polynomial + remainder. Defaults to \c 0 if omitted. (\e Init from the RMCA) + \tparam FinalXor The (XOR) bit-mask to be applied to the output remainder, + after possible reflection but before returning. Defaults to \c 0 (i.e. no + bit changes) if omitted. (\e XorOut from the RMCA) + \tparam ReflectIn If \c true, input bytes are read lowest-order bit first, + otherwise highest-order bit first. Defaults to \c false if omitted. + (\e RefIn from the RMCA) + \tparam ReflectRem If \c true, the output remainder is reflected before the + XOR-mask. Defaults to \c false if omitted. (\e RefOut from the RMCA) + + \todo Get rid of the default value for \a TruncPoly. Choosing a divisor is + an important decision with many factors, so a default is never useful, + especially a bad one. + */ 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 masking_type; - public: // Type - typedef typename masking_type::fast value_type; + //! \copydoc boost::crc_basic::value_type + typedef typename boost::uint_t::fast value_type; // Constants for the template parameters + //! \copydoc boost::crc_basic::bit_count BOOST_STATIC_CONSTANT( std::size_t, bit_count = Bits ); + //! A copy of \a TruncPoly provided for meta-programming purposes BOOST_STATIC_CONSTANT( value_type, truncated_polynominal = TruncPoly ); + //! A copy of \a InitRem provided for meta-programming purposes BOOST_STATIC_CONSTANT( value_type, initial_remainder = InitRem ); + //! A copy of \a FinalXor provided for meta-programming purposes BOOST_STATIC_CONSTANT( value_type, final_xor_value = FinalXor ); + //! A copy of \a ReflectIn provided for meta-programming purposes BOOST_STATIC_CONSTANT( bool, reflect_input = ReflectIn ); + //! A copy of \a ReflectRem provided for meta-programming purposes BOOST_STATIC_CONSTANT( bool, reflect_remainder = ReflectRem ); - // Constructor - explicit crc_optimal( value_type init_rem = InitRem ); + // Constructor (use the automatic copy-ctr, move-ctr, and dtr) + //! Create a computer, giving an initial remainder if desired + explicit crc_optimal( value_type init_rem = initial_remainder ); // Internal Operations + //! \copybrief boost::crc_basic::get_truncated_polynominal value_type get_truncated_polynominal() const; + //! \copybrief boost::crc_basic::get_initial_remainder value_type get_initial_remainder() const; + //! \copybrief boost::crc_basic::get_final_xor_value value_type get_final_xor_value() const; + //! \copybrief boost::crc_basic::get_reflect_input bool get_reflect_input() const; + //! \copybrief boost::crc_basic::get_reflect_remainder bool get_reflect_remainder() const; + //! \copybrief boost::crc_basic::get_interim_remainder value_type get_interim_remainder() const; - void reset( value_type new_rem = InitRem ); + //! Change the interim remainder to either a given value or the initial one + void reset( value_type new_rem = initial_remainder ); // External Operations + //! \copybrief boost::crc_basic::process_byte void process_byte( unsigned char byte ); + //! \copybrief boost::crc_basic::process_block void process_block( void const *bytes_begin, void const *bytes_end ); + //! \copybrief boost::crc_basic::process_bytes void process_bytes( void const *buffer, std::size_t byte_count ); + //! \copybrief boost::crc_basic::checksum value_type checksum() const; // Operators + //! Submit a single byte for input processing, suitable for the STL void operator ()( unsigned char byte ); + //! Return the checksum of the already-processed bits, suitable for the STL 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 crc_table_type; - typedef detail::crc_helper helper_type; - typedef detail::crc_helper reflect_out_type; - - #undef BOOST_CRC_REF_OUT_VAL + // Implementation types + // (Processing for reflected input gives reflected remainders, so you only + // have to apply output-reflection if Reflect-Remainder doesn't match + // Reflect-Input.) + typedef detail::possible_reflector reflect_i_type; + typedef detail::crc_driver crc_table_type; + typedef detail::possible_reflector + reflect_o_type; // Member data value_type rem_; @@ -259,390 +318,1264 @@ private: // Implementation detail stuff ---------------------------------------------// +//! \cond namespace detail { - // Forward declarations for more implementation details - template < std::size_t Bits > - struct high_uint_t; + /** \brief Meta-programming integral constant for a single-bit bit-mask - template < std::size_t Bits > - struct reflector; + Generates a compile-time constant for a bit-mask that affects a single + bit. The \c value will be 2BitIndex. The \c type + will be the smallest built-in unsigned integer type that can contain the + value, unless there's a built-in type that the system can handle easier, + then the \c type will be smallest fast-handled unsigned integer type. + \pre 0 \<= BitIndex \< \c std\::numeric_limits\\::digits - // 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 > + \tparam BitIndex The place of the sole set bit. + */ + template < int BitIndex > + struct high_bit_mask_c + : boost::integral_constant::fast, + ( UINTMAX_C(1) << BitIndex )> + {}; + + /** \brief Meta-programming integral constant for a lowest-bits bit-mask + + Generates a compile-time constant for a bit-mask that affects the lowest + bits. The \c value will be 2BitCount - 1. The + \c type will be the smallest built-in unsigned integer type that can + contain the value, unless there's a built-in type that the system can + handle easier, then the \c type will be smallest fast-handled unsigned + integer type. + + \pre 0 \<= BitCount \<= \c std\::numeric_limits\\::digits + + \tparam BitCount The number of lowest-placed bits set. + */ + template < int BitCount > + struct low_bits_mask_c + : boost::integral_constant::fast, ( + BitCount ? (( (( UINTMAX_C(1) << (BitCount - 1) ) - 1u) << 1 ) | + UINTMAX_C( 1 )) : 0u )> + {}; + + /** \brief Reflects the bits of a number + + Reverses the order of the given number of bits within a value. For + instance, if the given reflect count is 5, then the bit values for the + 16- and 1-place will switch and the 8- and 2-place will switch, leaving + the other bits alone. (The 4-place bit is in the middle, so it wouldn't + change.) + + \pre \a Unsigned is a built-in unsigned integer type + \pre 0 \< word_length \<= \c std\::numeric_limits\\::digits + + \tparam Unsigned The type of \a x. + + \param x The value to be (partially) reflected. + \param word_length The number of low-order bits to reflect. Defaults + to the total number of value bits in \a Unsigned. + + \return The (partially) reflected value. + + \todo Check if this is the fastest way. + */ + template < typename Unsigned > + Unsigned reflect_unsigned( Unsigned x, int word_length + = std::numeric_limits::digits ) { - typedef boost::uint_t 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::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::value_type - reflector::reflect - ( - typename reflector::value_type x - ) - { - value_type reflection = 0; - value_type const one = 1; - - for ( std::size_t i = 0 ; i < Bits ; ++i, x >>= 1 ) + for ( Unsigned l = 1u, h = l << (word_length - 1) ; h > l ; h >>= 1, l + <<= 1 ) { - if ( x & one ) - { - reflection |= ( one << (Bits - 1u - i) ); - } + Unsigned const m = h | l, t = x & m; + + if ( (t == h) || (t == l) ) + x ^= m; } - return reflection; + return x; } + /** \brief Make a byte-to-byte-reflection map - // 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 > + Creates a mapping array so the results can be cached. Uses + #reflect_unsigned to generate the element values. + + \return An array a such that, for a given byte value + i, a[ i ] resolves to + the reflected value of i. + */ + boost::array< unsigned char, (UINTMAX_C( 1 ) << CHAR_BIT) > + inline make_byte_reflection_table() { - typedef high_uint_t base_type; - typedef typename base_type::least least; - typedef typename base_type::fast fast; + boost::array result; + unsigned char i = 0u; - #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(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::digits > - : high_uint_t< std::numeric_limits::digits > - { - typedef high_uint_t::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::digits > - : high_uint_t< std::numeric_limits::digits > - { - typedef high_uint_t::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::digits > - : high_uint_t< std::numeric_limits::digits > - { - typedef high_uint_t::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::digits > - : high_uint_t< std::numeric_limits::digits > - { - typedef high_uint_t::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 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 ]; -#elif defined(__GNUC__) - // old versions of GCC (before 4.0.2) choke on using byte_combos - // as a constant expression when compiling with -pedantic. - typedef value_type table_type[1ul << CHAR_BIT]; -#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::table_type - crc_table_t::table_ - = { 0 }; - - // Populate CRC lookup table - template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, bool Reflect > - void - crc_table_t::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::reflect(dividend) ] - = crc_helper::reflect( remainder ); - } - while ( ++dividend ); - - did_init = true; + result[ i ] = reflect_unsigned( i ); + while ( ++i ); + return result; } - #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - // Align the msb of the remainder to a byte - template < std::size_t Bits, bool RightShift > - class remainder + /** \brief Reflects the bits of a single byte + + Reverses the order of all the bits within a value. For instance, the + bit values for the 2CHAR_BIT - 1- and 1-place + will switch and the 2CHAR_BIT - 2- and 2-place + will switch, etc. + + \param x The byte value to be reflected. + + \return The reflected value. + + \note Since this could be the most common type of reflection, and the + number of states is relatively small, the implementation pre-computes + and uses a table of all the results. + */ + inline unsigned char reflect_byte( unsigned char x ) + { + static boost::array const + table = make_byte_reflection_table(); + + return table[ x ]; + } + + /** \brief Reflects some bits within a single byte + + Like #reflect_unsigned, except it takes advantage of any (long-term) + speed gains #reflect_byte may bring. + + \pre 0 \< \a word_length \<= \c CHAR_BIT + + \param x The value to be (partially) reflected. + \param word_length The number of low-order bits to reflect. + + \return The (partially) reflected value. + */ + inline unsigned char reflect_sub_byte( unsigned char x, int word_length ) + { return reflect_byte(x) >> (CHAR_BIT - word_length); } + + /** \brief Possibly reflects the bits of a number + + Reverses the order of the given number of bits within a value. For + instance, if the given reflect count is 5, then the bit values for the + 16- and 1-place will switch and the 8- and 2-place will switch, leaving + the other bits alone. (The 4-place bit is in the middle, so it wouldn't + change.) This variant function allows the reflection be controlled by + an extra parameter, in case the decision to use reflection is made at + run-time. + + \pre \a Unsigned is a built-in unsigned integer type + \pre 0 \< word_length \<= \c std\::numeric_limits\\::digits + + \tparam Unsigned The type of \a x. + + \param x The value to be (partially) reflected. + \param reflect Controls whether \a x is actually reflected (\c true) or + left alone (\c false). + \param word_length The number of low-order bits to reflect. Defaults + to the total number of value bits in \a Unsigned. + + \return The possibly (partially) reflected value. + */ + template < typename Unsigned > + inline + Unsigned reflect_optionally( Unsigned x, bool reflect, int word_length + = std::numeric_limits::digits ) + { return reflect ? reflect_unsigned(x, word_length) : x; } + + /** \brief Possibly reflects the bits of a single byte + + Uses #reflect_byte (if \a reflect is \c true). + + \param x The byte value to be (possibly) reflected. + \param reflect Whether (\c true) or not (\c false) \a x is reflected. + + \return reflect ? reflect_byte(x) : + x + */ + inline + unsigned char reflect_byte_optionally( unsigned char x, bool reflect ) + { return reflect ? reflect_byte(x) : x; } + + /** \brief Update a CRC remainder by several bits, assuming a non-augmented + message + + Performs several steps of division required by the CRC algorithm, giving + a new remainder polynomial based on the divisor polynomial and the + synthesized dividend polynomial (from the old remainder and the + newly-provided input). The computations assume that the CRC is directly + exposed from the remainder, without any zero-valued bits augmented to + the message bits. + + \pre \a Register and \a Word are both built-in unsigned integer types + \pre 0 \< \a register_length \<= std\::numeric_limits\<\a Register\> + \::digits + \pre 0 \< \a word_length \<= std\::numeric_limits\<\a Word\>\::digits + + \tparam Register The type used for representing the remainder and + divisor modulo-2 polynomials. The bit at 2i + is used as the coefficient of xi. + \tparam Word The type used for storing the incoming terms of the + dividend modulo-2 polynomial. The bit at 2i + is used as the coefficient of xi when \a reflect is + \c false, and the coefficient of xword_length - 1 - + i otherwise. + + \param[in] register_length The number of significant low-order bits + to be used from \a Register values. It is the order of the modulo-2 + polynomial remainder and one less than the divisor's order. + \param[in,out] remainder The upper part of the dividend polynomial + before division, and the remainder polynomial after. + \param[in] new_dividend_bits The coefficients for the next + \a word_length lowest terms of the dividend polynomial. + \param[in] truncated_divisor The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + \param[in] word_length The number of lowest-order bits to read from + \a new_dividend_bits. + \param[in] reflect If \c false, read from the highest-order marked + bit from \a new_dividend_bits and go down, as normal. Otherwise, + proceed from the lowest-order bit and go up. + + \note This routine performs a modulo-2 polynomial division variant. + The exclusive-or operations are applied in a different order, since + that kind of operation is commutative and associative. It also + assumes that the zero-valued augment string was applied before this + step, which means that the updated remainder can be directly used as + the final CRC. + */ + template < typename Register, typename Word > + void crc_modulo_word_update( int register_length, Register &remainder, Word + new_dividend_bits, Register truncated_divisor, int word_length, bool + reflect ) + { + // Create this masking constant outside the loop. + Register const high_bit_mask = UINTMAX_C(1) << (register_length - 1); + + // The natural reading order for division is highest digit/bit first. + // The "reflect" parameter switches this. However, building a bit mask + // for the lowest bit is the easiest.... + new_dividend_bits = reflect_optionally( new_dividend_bits, !reflect, + word_length ); + + // Perform modulo-2 division for each new dividend input bit + for ( int i = word_length ; i ; --i, new_dividend_bits >>= 1 ) + { + // compare the new bit with the remainder's highest + remainder ^= ( new_dividend_bits & 1u ) ? high_bit_mask : 0u; + + // perform modulo-2 division + bool const quotient = remainder & high_bit_mask; + + remainder <<= 1; + remainder ^= quotient ? truncated_divisor : 0u; + + // The quotient isn't used for anything, so don't keep it. + } + } + + /** \brief Update a CRC remainder by a single bit, assuming a non-augmented + message + + Performs the next step of division required by the CRC algorithm, giving + a new remainder polynomial based on the divisor polynomial and the + synthesized dividend polynomial (from the old remainder and the + newly-provided input). The computations assume that the CRC is directly + exposed from the remainder, without any zero-valued bits augmented to + the message bits. + + \pre \a Register is a built-in unsigned integer type + \pre 0 \< \a register_length \<= std\::numeric_limits\<\a Register\> + \::digits + + \tparam Register The type used for representing the remainder and + divisor modulo-2 polynomials. The bit at 2i + is used as the coefficient of xi. + + \param[in] register_length The number of significant low-order bits + to be used from \a Register values. It is the order of the modulo-2 + polynomial remainder and one less than the divisor's order. + \param[in,out] remainder The upper part of the dividend polynomial + before division, and the remainder polynomial after. + \param[in] new_dividend_bit The coefficient for the constant term + of the dividend polynomial. + \param[in] truncated_divisor The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + + \note This routine performs a modulo-2 polynomial division variant. + The exclusive-or operations are applied in a different order, since + that kind of operation is commutative and associative. It also + assumes that the zero-valued augment string was applied before this + step, which means that the updated remainder can be directly used as + the final CRC. + */ + template < typename Register > + inline void crc_modulo_update( int register_length, Register &remainder, + bool new_dividend_bit, Register truncated_divisor ) + { + crc_modulo_word_update( register_length, remainder, + static_cast(new_dividend_bit), truncated_divisor, 1, false ); + } + + /** \brief Update a CRC remainder by several bits, assuming an augmented + message + + Performs several steps of division required by the CRC algorithm, giving + a new remainder polynomial based on the divisor polynomial and the + synthesized dividend polynomial (from the old remainder and the + newly-provided input). The computations assume that a zero-valued + string of bits will be appended to the message before extracting the + CRC. + + \pre \a Register and \a Word are both built-in unsigned integer types + \pre 0 \< \a register_length \<= std\::numeric_limits\<\a Register\> + \::digits + \pre 0 \< \a word_length \<= std\::numeric_limits\<\a Word\>\::digits + + \tparam Register The type used for representing the remainder and + divisor modulo-2 polynomials. The bit at 2i + is used as the coefficient of xi. + \tparam Word The type used for storing the incoming terms of the + dividend modulo-2 polynomial. The bit at 2i + is used as the coefficient of xi when \a reflect is + \c false, and the coefficient of xword_length - 1 - + i otherwise. + + \param[in] register_length The number of significant low-order bits + to be used from \a Register values. It is the order of the modulo-2 + polynomial remainder and one less than the divisor's order. + \param[in,out] remainder The upper part of the dividend polynomial + before division, and the remainder polynomial after. + \param[in] new_dividend_bits The coefficients for the next + \a word_length lowest terms of the dividend polynomial. + \param[in] truncated_divisor The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + \param[in] word_length The number of lowest-order bits to read from + \a new_dividend_bits. + \param[in] reflect If \c false, read from the highest-order marked + bit from \a new_dividend_bits and go down, as normal. Otherwise, + proceed from the lowest-order bit and go up. + + \note This routine performs straight-forward modulo-2 polynomial + division. It assumes that an augment string will be processed at the + end of the message bits before doing CRC analysis. + \todo Use this function somewhere so I can test it. + */ + template < typename Register, typename Word > + void augmented_crc_modulo_word_update( int register_length, Register + &remainder, Word new_dividend_bits, Register truncated_divisor, int + word_length, bool reflect ) + { + // Create this masking constant outside the loop. + Register const high_bit_mask = UINTMAX_C(1) << (register_length - 1); + + // The natural reading order for division is highest digit/bit first. + // The "reflect" parameter switches this. However, building a bit mask + // for the lowest bit is the easiest.... + new_dividend_bits = reflect_optionally( new_dividend_bits, not reflect, + word_length ); + + // Perform modulo-2 division for each new dividend input bit + for ( int i = word_length ; i ; --i, new_dividend_bits >>= 1 ) + { + bool const quotient = remainder & high_bit_mask; + + remainder <<= 1; + remainder |= new_dividend_bits & 1u; + remainder ^= quotient ? truncated_divisor : 0u; + + // The quotient isn't used for anything, so don't keep it. + } + } + + /** \brief Update a CRC remainder by a single bit, assuming an augmented + message + + Performs the next step of division required by the CRC algorithm, giving + a new remainder polynomial based on the divisor polynomial and the + synthesized dividend polynomial (from the old remainder and the + newly-provided input). The computations assume that a zero-valued + string of bits will be appended to the message before extracting the + CRC. + + \pre \a Register is a built-in unsigned integer type + \pre 0 \< \a register_length \<= std\::numeric_limits\<\a Register\> + \::digits + + \tparam Register The type used for representing the remainder and + divisor modulo-2 polynomials. The bit at 2i + is used as the coefficient of xi. + + \param[in] register_length The number of significant low-order bits + to be used from \a Register values. It is the order of the modulo-2 + polynomial remainder and one less than the divisor's order. + \param[in,out] remainder The upper part of the dividend polynomial + before division, and the remainder polynomial after. + \param[in] new_dividend_bit The coefficient for the constant term + of the dividend polynomial. + \param[in] truncated_divisor The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + + \note This routine performs straight-forward modulo-2 polynomial + division. It assumes that an augment string will be processed at the + end of the message bits before doing CRC analysis. + \todo Use this function somewhere so I can test it. + */ + template < typename Register > + inline void augmented_crc_modulo_update( int register_length, Register + &remainder, bool new_dividend_bit, Register truncated_divisor ) + { + augmented_crc_modulo_word_update( register_length, remainder, + static_cast(new_dividend_bit), truncated_divisor, 1, false ); + } + + /** \brief A mix-in class that returns its argument + + This class template makes a function object that returns its argument + as-is. It's one case for #possible_reflector. + + \pre 0 \< \a BitLength \<= \c std\::numeric_limits\ + \::digits + + \tparam BitLength How many significant bits arguments have. + */ + template < int BitLength > + class non_reflector { public: - typedef typename uint_t::fast value_type; + /** \brief The type to check for specialization - static unsigned char align_msb( value_type rem ) - { return rem >> (Bits - CHAR_BIT); } + This is a Boost integral constant indicating that this class + does not reflect its input values. + */ + typedef boost::false_type is_reflecting_type; + /** \brief The type to check for register bit length + + This is a Boost integral constant indicating how many + significant bits won't actually be reflected. + */ + typedef boost::integral_constant< int, BitLength > width_c; + /** \brief The type of (not-)reflected values + + This type is the input and output type for the (possible-) + reflection function, which does nothing here. + */ + typedef typename boost::uint_t< BitLength >::fast value_type; + + /** \brief Does nothing + + Returns the given value, not reflecting any part of it. + + \param x The value to not be reflected. + + \return \a x + */ + inline static value_type reflect_q( value_type x ) + { return x; } }; - // 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 > + /** \brief A mix-in class that reflects (the lower part of) its argument, + generally for types larger than a byte + + This class template makes a function object that returns its argument + after reflecting its lower-order bits. It's one sub-case for + #possible_reflector. + + \pre \c CHAR_BIT \< \a BitLength \<= \c std\::numeric_limits\\::digits + + \tparam BitLength How many significant bits arguments have. + */ + template < int BitLength > + class super_byte_reflector { public: - typedef typename uint_t::fast value_type; + /** \brief The type to check for specialization - static unsigned char align_msb( value_type rem ) - { return rem << (CHAR_BIT - Bits); } + This is a Boost integral constant indicating that this class + does reflect its input values. + */ + typedef boost::true_type is_reflecting_type; + /** \brief The type to check for register bit length + + This is a Boost integral constant indicating how many + significant bits will be reflected. + */ + typedef boost::integral_constant< int, BitLength > width_c; + /** \brief The type of reflected values + + This is both the input and output type for the reflection function. + */ + typedef typename boost::uint_t< BitLength >::fast value_type; + + /** \brief Reflect (part of) the given value + + Reverses the order of the given number of bits within a value, + using #reflect_unsigned. + + \param x The value to be (partially) reflected. + + \return ( x & + ~(2width_c\::value - 1) ) | REFLECT( + x & (2width_c\::value - + 1) ) + */ + inline static value_type reflect_q( value_type x ) + { return reflect_unsigned(x, width_c::value); } }; - #endif - // CRC helper routines - template < std::size_t Bits, bool DoReflect > - class crc_helper + /** \brief A mix-in class that reflects (the lower part of) its argument, + generally for bytes + + This class template makes a function object that returns its argument + after reflecting its lower-order bits. It's one sub-case for + #possible_reflector. + + \pre 0 \< \a BitLength \<= \c CHAR_BIT + + \tparam BitLength How many significant bits arguments have. + */ + template < int BitLength > + class sub_type_reflector { public: - // Type - typedef typename uint_t::fast value_type; + /** \brief The type to check for specialization - #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - // Possibly reflect a remainder - static value_type reflect( value_type x ) - { return detail::reflector::reflect( x ); } + This is a Boost integral constant indicating that this class + does reflect its input values. + */ + typedef boost::true_type is_reflecting_type; + /** \brief The type to check for register bit length - // Compare a byte to the remainder's highest byte - static unsigned char index( value_type rem, unsigned char x ) - { return x ^ rem; } + This is a Boost integral constant indicating how many + significant bits will be reflected. + */ + typedef boost::integral_constant< int, BitLength > width_c; + /** \brief The type of reflected values - // 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::reflect( x ) : x; } + This is both the input and output type for the reflection function. + */ + typedef unsigned char value_type; - // 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) ))); } + /** \brief Reflect (part of) the given value - // Shift out the remainder's highest byte - static value_type shift( value_type rem ) - { return DoReflect ? rem >> CHAR_BIT : rem << CHAR_BIT; } - #endif + Reverses the order of the given number of bits within a value, + using #reflect_sub_byte. - }; // boost::detail::crc_helper + \param x The value to be (partially) reflected. - #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template < std::size_t Bits > - class crc_helper + \return ( x & + ~(2width_c\::value - 1) ) | REFLECT( + x & (2width_c\::value - + 1) ) + */ + inline static value_type reflect_q( value_type x ) + { return reflect_sub_byte(x, width_c::value); } + }; + + /** \brief A mix-in class that reflects (the lower part of) its argument + + This class template makes a function object that returns its argument + after reflecting its lower-order bits. It's one case for + #possible_reflector. + + \pre 0 \< \a BitLength \<= \c std\::numeric_limits\ + \::digits + + \tparam BitLength How many significant bits arguments have. + */ + template < int BitLength > + class reflector + : public boost::conditional< (BitLength > CHAR_BIT), + super_byte_reflector, sub_type_reflector >::type + { }; + + /** This class template adds a member function #reflect_q that will + conditionally reflect its first argument, controlled by a compile-time + parameter. + + \pre 0 \< \a BitLength \<= \c std\::numeric_limits\ + \::digits + + \tparam BitLength How many significant bits arguments have. + \tparam DoIt \c true if #reflect_q will reflect, \c false if it should + return its argument unchanged. + \tparam Id An extra differentiator if multiple copies of this class + template are mixed-in as base classes. Defaults to 0 if omitted. + */ + template < int BitLength, bool DoIt, int Id > + class possible_reflector + : public boost::conditional< DoIt, reflector, + non_reflector >::type { public: - // Type - typedef typename uint_t::fast value_type; + /** \brief The type to check for ID - // Possibly reflect a remainder - static value_type reflect( value_type x ) - { return x; } + This is a Boost integral constant indicating what ID number this + instantiation used. + */ + typedef boost::integral_constant id_type; + }; - // Compare a byte to the remainder's highest byte - static unsigned char index( value_type rem, unsigned char x ) - { return x ^ remainderCHAR_BIT)>::align_msb( rem ); } + /** \brief Find the composite remainder update effect from a fixed bit + sequence, for each potential sequence combination. - // Shift out the remainder's highest byte - static value_type shift( value_type rem ) - { return rem << CHAR_BIT; } + For each value between 0 and 2SubOrder - 1, + computes the XOR mask corresponding to the composite effect they update + the incoming remainder, which is the upper part of the dividend that + gets (partially) pushed out of its register by the incoming value's + bits. The composite value merges the \"partial products\" from each bit + of the value being updated individually. - }; // boost::detail::crc_helper - #endif + \pre \a Register is a built-in unsigned integer type + \pre 0 \< \a SubOrder \<= \a register_length \<= + std\::numeric_limits\<\a Register\>\::digits + + \tparam SubOrder The number of low-order significant bits of the trial + new dividends. + \tparam Register The type used for representing the remainder and + divisor modulo-2 polynomials. The bit at 2i + is used as the coefficient of xi. + + \param[in] register_length The number of significant low-order bits + to be used from \a Register values. It is the order of the modulo-2 + polynomial remainder and one less than the divisor's order. + \param[in] truncated_divisor The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + \param[in] reflect If \c false, read from the highest-order marked + bit from a new dividend's bits and go down, as normal. Otherwise, + proceed from the lowest-order bit and go up. + + \return An array such that the element at index i is the + composite effect XOR mask for value i. + + \note This routine performs a modulo-2 polynomial division variant. + The exclusive-or operations are applied in a different order, since + that kind of operation is commutative and associative. It also + assumes that the zero-valued augment string was applied before this + step, which means that the updated remainder can be directly used as + the final CRC. + \todo Check that using the unaugmented-CRC division routines give the + same composite mask table as using augmented-CRC routines. + */ + template < int SubOrder, typename Register > + boost::array< Register, (UINTMAX_C( 1 ) << SubOrder) > + make_partial_xor_products_table( int register_length, Register + truncated_divisor, bool reflect ) + { + boost::array result; + + // Loop over every possible dividend value + for ( typename boost::uint_t::fast dividend = 0u; + dividend < result.size() ; ++dividend ) + { + Register remainder = 0u; + + crc_modulo_word_update( register_length, remainder, dividend, + truncated_divisor, SubOrder, false ); + result[ reflect_optionally(dividend, reflect, SubOrder) ] = + reflect_optionally( remainder, reflect, register_length ); + } + return result; + } + + /** \brief A mix-in class for the table of table-driven CRC algorithms + + Encapsulates the parameters need to make a global (technically, + class-static) table usuable in CRC algorithms, and generates said + table. + + \pre 0 \< \a SubOrder \<= Order \<= + std\::numeric_limits\\::digits + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam SubOrder The number of low-order significant bits of the trial + new dividends. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + \tparam Reflect If \c false, read from the highest-order marked + bit from a new dividend's bits and go down, as normal. Otherwise, + proceed from the lowest-order bit and go up. + */ + template < int Order, int SubOrder, boost::uintmax_t TruncatedPolynomial, + bool Reflect > + class crc_table_t + { + public: + /** \brief The type to check for register bit length + + This is a Boost integral constant indicating how many + significant bits are in the remainder and (truncated) divisor. + */ + typedef boost::integral_constant< int, Order > width_c; + /** \brief The type to check for index-unit bit length + + This is a Boost integral constant indicating how many + significant bits are in the trial new dividends. + */ + typedef boost::integral_constant< int, SubOrder > unit_width_c; + /** \brief The type of registers + + This is the output type for the partial-product map. + */ + typedef typename boost::uint_t< Order >::fast value_type; + /** \brief The type to check the divisor + + This is a Boost integral constant representing the (truncated) + divisor. + */ + typedef boost::integral_constant< value_type, TruncatedPolynomial > + poly_c; + /** \brief The type to check for reflection + + This is a Boost integral constant representing whether input + units should be read in reverse order. + */ + typedef boost::integral_constant< bool, Reflect > refin_c; + /** \brief The type to check for map size + + This is a Boost integral constant representing the number of + elements in the partial-product map, based on the unit size. + */ + typedef high_bit_mask_c< SubOrder > table_size_c; + /** \brief The type of the unit TO partial-product map + + This is the array type that takes units as the index and said unit's + composite partial-product mask as the element. + */ + typedef boost::array array_type; + /** \brief Create a global array for the mapping table + + Creates an instance of a partial-product array with this class's + parameters. + + \return A reference to a immutable array giving the partial-product + update XOR map for each potential sub-unit value. + */ + static array_type const & get_table() + { + static array_type const table = + make_partial_xor_products_table( + width_c::value, poly_c::value, refin_c::value ); + + return table; + } + }; + + /** \brief A mix-in class that handles direct (i.e. non-reflected) byte-fed + table-driven CRC algorithms + + This class template adds member functions #augmented_crc_update and + #crc_update to update remainders from new input bytes. The bytes aren't + reflected before processing. + + \pre \c CHAR_BIT \<= \a Order \<= \c std\::numeric_limits\ + \::digits + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + */ + template < int Order, boost::uintmax_t TruncatedPolynomial > + class direct_byte_table_driven_crcs + : public crc_table_t + { + typedef crc_table_t + base_type; + + public: + typedef typename base_type::value_type value_type; + typedef typename base_type::array_type array_type; + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + augmented-CRC updates byte-wise. + + \param remainder The pre-update remainder + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated remainder + */ + static value_type augmented_crc_update( value_type remainder, unsigned + char const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + static array_type const & table = base_type::get_table(); + + while ( new_dividend_byte_count-- ) + { + // Locates the merged partial product based on the leading byte + unsigned char const index = ( remainder >> (Order - CHAR_BIT) ) + & UCHAR_MAX; + + // Complete the multi-bit modulo-2 polynomial division + remainder <<= CHAR_BIT; + remainder |= *new_dividend_bytes++; + remainder ^= table.elems[ index ]; + } + + return remainder; + } + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + unaugmented-CRC updates byte-wise. + + \param remainder The pre-update remainder + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated remainder + */ + static value_type crc_update( value_type remainder, unsigned char + const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + static array_type const & table = base_type::get_table(); + + while ( new_dividend_byte_count-- ) + { + // Locates the merged partial product based on comparing the + // leading and incoming bytes + unsigned char const index = ( (remainder >> ( Order - CHAR_BIT + )) & UCHAR_MAX ) ^ *new_dividend_bytes++; + + // Complete the multi-bit altered modulo-2 polynomial division + remainder <<= CHAR_BIT; + remainder ^= table.elems[ index ]; + } + + return remainder; + } + }; + + /** \brief A mix-in class that handles reflected byte-fed, table-driven CRC + algorithms + + This class template adds member functions #augmented_crc_update and + #crc_update to update remainders from new input bytes. The bytes are + reflected before processing. + + \pre \c CHAR_BIT \<= \a Order \<= \c std\::numeric_limits\ + \::digits + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + */ + template < int Order, boost::uintmax_t TruncatedPolynomial > + class reflected_byte_table_driven_crcs + : public crc_table_t + { + typedef crc_table_t + base_type; + + public: + typedef typename base_type::value_type value_type; + typedef typename base_type::array_type array_type; + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + reflecting augmented-CRC updates byte-wise. + + \param remainder The pre-update remainder; since the bytes are + being reflected, this remainder also has to be reflected + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated, reflected remainder + */ + static value_type augmented_crc_update( value_type remainder, unsigned + char const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + static array_type const & table = base_type::get_table(); + + while ( new_dividend_byte_count-- ) + { + // Locates the merged partial product based on the leading byte + // (which is at the low-order end for reflected remainders) + unsigned char const index = remainder & UCHAR_MAX; + + // Complete the multi-bit reflected modulo-2 polynomial division + remainder >>= CHAR_BIT; + remainder |= static_cast( *new_dividend_bytes++ ) + << ( Order - CHAR_BIT ); + remainder ^= table.elems[ index ]; + } + + return remainder; + } + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + reflected unaugmented-CRC updates byte-wise. + + \param remainder The pre-update remainder; since the bytes are + being reflected, this remainder also has to be reflected + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated, reflected remainder + */ + static value_type crc_update( value_type remainder, unsigned char + const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + static array_type const & table = base_type::get_table(); + + while ( new_dividend_byte_count-- ) + { + // Locates the merged partial product based on comparing the + // leading and incoming bytes + unsigned char const index = ( remainder & UCHAR_MAX ) ^ + *new_dividend_bytes++; + + // Complete the multi-bit reflected altered modulo-2 polynomial + // division + remainder >>= CHAR_BIT; + remainder ^= table.elems[ index ]; + } + + return remainder; + } + }; + + /** \brief Mix-in class for byte-fed, table-driven CRC algorithms with + parameter values at least a byte in width + + This class template adds member functions #augmented_crc_update and + #crc_update to update remainders from new input bytes. The bytes may be + reflected before processing, controlled by a compile-time parameter. + + \pre \c CHAR_BIT \<= \a Order \<= \c std\::numeric_limits\ + \::digits + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + \tparam Reflect If \c false, read from the highest-order bit from a new + input byte and go down, as normal. Otherwise, proceed from the + lowest-order bit and go up. + */ + template < int Order, boost::uintmax_t TruncatedPolynomial, bool Reflect > + class byte_table_driven_crcs + : public boost::conditional< Reflect, + reflected_byte_table_driven_crcs, + direct_byte_table_driven_crcs >::type + { }; + + /** \brief A mix-in class that handles direct (i.e. non-reflected) byte-fed + CRC algorithms for sub-byte parameters + + This class template adds member functions #augmented_crc_update and + #crc_update to update remainders from new input bytes. The bytes aren't + reflected before processing. + + \pre 0 \< \a Order \< \c CHAR_BIT + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + */ + template < int Order, boost::uintmax_t TruncatedPolynomial > + class direct_sub_byte_crcs + : public crc_table_t + { + typedef crc_table_t + base_type; + + public: + typedef typename base_type::width_c width_c; + typedef typename base_type::value_type value_type; + typedef typename base_type::poly_c poly_c; + typedef typename base_type::array_type array_type; + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + augmented-CRC updates byte-wise. + + \param remainder The pre-update remainder + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated remainder + + \todo Use this function somewhere so I can test it. + */ + static value_type augmented_crc_update( value_type remainder, unsigned + char const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + //static array_type const & table = base_type::get_table(); + + while ( new_dividend_byte_count-- ) + { + // Without a table, process each byte explicitly + augmented_crc_modulo_word_update( width_c::value, remainder, + *new_dividend_bytes++, poly_c::value, CHAR_BIT, false ); + } + + return remainder; + } + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + unaugmented-CRC updates byte-wise. + + \param remainder The pre-update remainder + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated remainder + */ + static value_type crc_update( value_type remainder, unsigned char + const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + //static array_type const & table = base_type::get_table(); + + while ( new_dividend_byte_count-- ) + { + // Without a table, process each byte explicitly + crc_modulo_word_update( width_c::value, remainder, + *new_dividend_bytes++, poly_c::value, CHAR_BIT, false ); + } + + return remainder; + } + }; + + /** \brief A mix-in class that handles reflected byte-fed, CRC algorithms + for sub-byte parameters + + This class template adds member functions #augmented_crc_update and + #crc_update to update remainders from new input bytes. The bytes are + reflected before processing. + + \pre 0 \< \a Order \< \c CHAR_BIT + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + */ + template < int Order, boost::uintmax_t TruncatedPolynomial > + class reflected_sub_byte_crcs + : public crc_table_t + { + typedef crc_table_t + base_type; + + public: + typedef typename base_type::width_c width_c; + typedef typename base_type::value_type value_type; + typedef typename base_type::poly_c poly_c; + typedef typename base_type::array_type array_type; + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + reflecting augmented-CRC updates byte-wise. + + \param remainder The pre-update remainder; since the bytes are + being reflected, this remainder also has to be reflected + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated, reflected remainder + + \todo Use this function somewhere so I can test it. + */ + static value_type augmented_crc_update( value_type remainder, unsigned + char const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + //static array_type const & table = base_type::get_table(); + + remainder = reflect_sub_byte( remainder, width_c::value ); + while ( new_dividend_byte_count-- ) + { + // Without a table, process each byte explicitly + augmented_crc_modulo_word_update( width_c::value, remainder, + *new_dividend_bytes++, poly_c::value, CHAR_BIT, true ); + } + remainder = reflect_sub_byte( remainder, width_c::value ); + + return remainder; + } + + /** \brief Compute the updated remainder after reading some bytes + + The implementation reads from a table to speed-up applying + reflected unaugmented-CRC updates byte-wise. + + \param remainder The pre-update remainder; since the bytes are + being reflected, this remainder also has to be reflected + \param new_dividend_bytes The address where the new bytes start + \param new_dividend_byte_count The number of new bytes to read + + \return The updated, reflected remainder + */ + static value_type crc_update( value_type remainder, unsigned char + const *new_dividend_bytes, std::size_t new_dividend_byte_count) + { + //static array_type const & table = base_type::get_table(); + + remainder = reflect_sub_byte( remainder, width_c::value ); + while ( new_dividend_byte_count-- ) + { + // Without a table, process each byte explicitly + crc_modulo_word_update( width_c::value, remainder, + *new_dividend_bytes++, poly_c::value, CHAR_BIT, true ); + } + remainder = reflect_sub_byte( remainder, width_c::value ); + + return remainder; + } + }; + + /** \brief Mix-in class for byte-fed, table-driven CRC algorithms with + sub-byte parameters + + This class template adds member functions #augmented_crc_update and + #crc_update to update remainders from new input bytes. The bytes may be + reflected before processing, controlled by a compile-time parameter. + + \pre 0 \< \a Order \< \c CHAR_BIT + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + \tparam Reflect If \c false, read from the highest-order bit from a new + input byte and go down, as normal. Otherwise, proceed from the + lowest-order bit and go up. + */ + template < int Order, boost::uintmax_t TruncatedPolynomial, bool Reflect > + class sub_byte_crcs + : public boost::conditional< Reflect, + reflected_sub_byte_crcs, + direct_sub_byte_crcs >::type + { }; + + /** This class template adds member functions #augmented_crc_update and + #crc_update to update remainders from new input bytes. The bytes may be + reflected before processing, controlled by a compile-time parameter. + + \pre 0 \< \a Order \<= \c std\::numeric_limits\\::digits + + \tparam Order The order of the modulo-2 polynomial remainder and one + less than the divisor's order. + \tparam TruncatedPolynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always + assumed to be 1. + \tparam Reflect If \c false, read from the highest-order bit from a new + input byte and go down, as normal. Otherwise, proceed from the + lowest-order bit and go up. + \tparam Id An extra differentiator if multiple copies of this class + template are mixed-in as base classes. Defaults to 0 if omitted. + */ + template < int Order, boost::uintmax_t TruncatedPolynomial, bool Reflect, + int Id > + class crc_driver + : public boost::conditional< (Order < CHAR_BIT), sub_byte_crcs, byte_table_driven_crcs >::type + { + public: + /** \brief The type to check for ID + + This is a Boost integral constant indicating what ID number this + instantiation used. + */ + typedef boost::integral_constant id_type; + }; } // namespace detail +//! \endcond // Simple CRC class function definitions -----------------------------------// +/** Constructs a \c crc_basic object with at least the required parameters to a + particular CRC formula to be processed upon receiving input. + + \param[in] truncated_polynomial The lowest coefficients of the divisor + polynomial. The highest-order coefficient is omitted and always assumed + to be 1. (\e Poly from the RMCA) + \param[in] initial_remainder The (unaugmented) initial state of the + polynomial remainder. Defaults to \c 0 if omitted. (\e Init from the + RMCA) + \param[in] final_xor_value The (XOR) bit-mask to be applied to the output + remainder, after possible reflection but before returning. Defaults to + \c 0 (i.e. no bit changes) if omitted. (\e XorOut from the RMCA) + \param[in] reflect_input If \c true, input bytes are read lowest-order bit + first, otherwise highest-order bit first. Defaults to \c false if + omitted. (\e RefIn from the RMCA) + \param[in] reflect_remainder If \c true, the output remainder is reflected + before the XOR-mask. Defaults to \c false if omitted. (\e RefOut from + the RMCA) + + \post truncated_polynomial == + this->get_truncated_polynominal() + \post initial_remainder == + this->get_initial_remainder() + \post final_xor_value == + this->get_final_xor_value() + \post reflect_input == + this->get_reflect_input() + \post reflect_remainder == + this->get_reflect_remainder() + \post initial_remainder == + this->get_interim_remainder() + \post (reflect_remainder ? + REFLECT(initial_remainder) : initial_remainder) ^ + final_xor_value == this->checksum() + */ template < std::size_t Bits > inline crc_basic::crc_basic ( - typename crc_basic::value_type truncated_polynominal, - typename crc_basic::value_type initial_remainder, // = 0 - typename crc_basic::value_type final_xor_value, // = 0 - bool reflect_input, // = false - bool reflect_remainder // = false + value_type truncated_polynomial, + value_type initial_remainder, // = 0 + value_type final_xor_value, // = 0 + bool reflect_input, // = false + bool reflect_remainder // = false ) - : rem_( initial_remainder ), poly_( truncated_polynominal ) + : rem_( initial_remainder ), poly_( truncated_polynomial ) , init_( initial_remainder ), final_( final_xor_value ) , rft_in_( reflect_input ), rft_out_( reflect_remainder ) { } +/** Returns a representation of the polynomial divisor. The value of the + 2i bit is the value of the coefficient of the polynomial's + xi term. The omitted bit for x(#bit_count) term is + always 1. + + \return The bit-packed list of coefficients. If the bit-length of + #value_type exceeds #bit_count, the values of higher-placed bits should be + ignored (even any for x(#bit_count)) since they're unregulated. + */ template < std::size_t Bits > inline typename crc_basic::value_type @@ -653,6 +1586,14 @@ crc_basic::get_truncated_polynominal return poly_; } +/** Returns a representation of the polynomial remainder before any input has + been submitted. The value of the 2i bit is the value of the + coefficient of the polynomial's xi term. + + \return The bit-packed list of coefficients. If the bit-length of + #value_type exceeds #bit_count, the values of higher-placed bits should be + ignored since they're unregulated. + */ template < std::size_t Bits > inline typename crc_basic::value_type @@ -663,6 +1604,15 @@ crc_basic::get_initial_remainder return init_; } +/** Returns the mask to be used during creation of a checksum. The mask is used + for an exclusive-or (XOR) operation applied bit-wise to the interim + remainder representation (after any reflection, if #get_reflect_remainder() + returns \c true). + + \return The bit-mask. If the bit-length of #value_type exceeds #bit_count, + the values of higher-placed bits should be ignored since they're + unregulated. + */ template < std::size_t Bits > inline typename crc_basic::value_type @@ -673,6 +1623,13 @@ crc_basic::get_final_xor_value return final_; } +/** Returns a whether or not a submitted byte will be \"reflected\" before it is + used to update the interim remainder. Only the byte-wise operations + #process_byte, #process_block, and #process_bytes are affected. + + \retval true Input bytes will be read starting from the lowest-order bit. + \retval false Input bytes will be read starting from the highest-order bit. + */ template < std::size_t Bits > inline bool @@ -683,6 +1640,12 @@ crc_basic::get_reflect_input return rft_in_; } +/** Indicates if the interim remainder will be \"reflected\" before it is passed + to the XOR-mask stage when returning a checksum. + + \retval true The interim remainder is reflected before further work. + \retval false The interim remainder is applied to the XOR-mask as-is. + */ template < std::size_t Bits > inline bool @@ -693,6 +1656,19 @@ crc_basic::get_reflect_remainder return rft_out_; } +/** Returns a representation of the polynomial remainder after all the input + submissions since construction or the last #reset call. The value of the + 2i bit is the value of the coefficient of the polynomial's + xi term. If CRC processing gets interrupted here, retain the + value returned, and use it to start up the next CRC computer where you left + off (with #reset(value_type) or construction). The next computer has to + have its other parameters compatible with this computer. + + \return The bit-packed list of coefficients. If the bit-length of + #value_type exceeds #bit_count, the values of higher-placed bits should be + ignored since they're unregulated. No output processing (reflection or + XOR mask) has been applied to the value. + */ template < std::size_t Bits > inline typename crc_basic::value_type @@ -700,20 +1676,45 @@ crc_basic::get_interim_remainder ( ) const { - return rem_ & masking_type::sig_bits; + return rem_ & detail::low_bits_mask_c::value; } +/** Changes the interim polynomial remainder to \a new_rem, purging any + influence previously submitted input has had. The value of the + 2i bit is the value of the coefficient of the polynomial's + xi term. + + \param[in] new_rem The (unaugmented) state of the polynomial remainder + starting from this point, with no output processing applied. + + \post new_rem == this->get_interim_remainder() + \post ((this->get_reflect_remainder() ? + REFLECT(new_rem) : new_rem) ^ + this->get_final_xor_value()) == this->checksum() + */ template < std::size_t Bits > inline void crc_basic::reset ( - typename crc_basic::value_type new_rem + value_type new_rem ) { rem_ = new_rem; } +/** Changes the interim polynomial remainder to the initial remainder given + during construction, purging any influence previously submitted input has + had. The value of the 2i bit is the value of the coefficient of + the polynomial's xi term. + + \post this->get_initial_remainder() == + this->get_interim_remainder() + \post ((this->get_reflect_remainder() ? + REFLECT(this->get_initial_remainder()) : + this->get_initial_remainder()) ^ this->get_final_xor_value()) + == this->checksum() + */ template < std::size_t Bits > inline void @@ -724,6 +1725,13 @@ crc_basic::reset this->reset( this->get_initial_remainder() ); } +/** Updates the interim remainder with a single altered-CRC-division step. + + \param[in] bit The new input bit. + + \post The interim remainder is updated though a modulo-2 polynomial + division, where the division steps are altered for unaugmented CRCs. + */ template < std::size_t Bits > inline void @@ -732,43 +1740,54 @@ crc_basic::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( rem_ & high_bit_mask ); - - // shift out the highest bit - rem_ <<= 1; - - // carry out the division, if needed - if ( do_poly_div ) - { - rem_ ^= poly_; - } + detail::crc_modulo_update( bit_count, rem_, bit, poly_ ); } +/** Updates the interim remainder with several altered-CRC-division steps. Each + bit is processed separately, starting from the one at the + 2bit_length - 1 place, then proceeding down to the + lowest-placed bit. Any order imposed by + this->get_reflect_input() is ignored. + + \pre 0 \< \a bit_length \<= \c CHAR_BIT + + \param[in] bits The byte containing the new input bits. + \param[in] bit_length The number of bits in the byte to be read. + + \post The interim remainder is updated though \a bit_length modulo-2 + polynomial divisions, where the division steps are altered for unaugmented + CRCs. + */ template < std::size_t Bits > void crc_basic::process_bits ( unsigned char bits, - std::size_t bit_count + std::size_t bit_length ) { // ignore the bits above the ones we want - bits <<= CHAR_BIT - bit_count; + bits <<= CHAR_BIT - bit_length; // 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 ) + for ( std::size_t i = bit_length ; i > 0u ; --i, bits <<= 1u ) { process_bit( static_cast(bits & high_bit_mask) ); } } +/** Updates the interim remainder with a byte's worth of altered-CRC-division + steps. The bits within the byte are processed from the highest place down + if this->get_reflect_input() is \c false, and lowest place + up otherwise. + + \param[in] byte The new input byte. + + \post The interim remainder is updated though \c CHAR_BIT modulo-2 + polynomial divisions, where the division steps are altered for unaugmented + CRCs. + */ template < std::size_t Bits > inline void @@ -777,10 +1796,33 @@ crc_basic::process_byte unsigned char byte ) { - process_bits( (rft_in_ ? detail::reflector::reflect(byte) - : byte), CHAR_BIT ); + process_bits( (rft_in_ ? detail::reflect_byte( byte ) : byte), CHAR_BIT ); } +/** Updates the interim remainder with several bytes' worth of + altered-CRC-division steps. The bits within each byte are processed from + the highest place down if this->get_reflect_input() is + \c false, and lowest place up otherwise. The bytes themselves are processed + starting from the one pointed by \a bytes_begin until \a bytes_end is + reached through forward iteration, treating the two pointers as if they + point to unsigned char objects. + + \pre \a bytes_end has to equal \a bytes_begin if the latter is \c NULL or + otherwise doesn't point to a valid buffer. + \pre \a bytes_end, if not equal to \a bytes_begin, has to point within or + one-byte-past the same buffer \a bytes_begin points into. + \pre \a bytes_end has to be reachable from \a bytes_begin through a finite + number of forward byte-pointer increments. + + \param[in] bytes_begin The address where the memory block begins. + \param[in] bytes_end Points to one-byte past the address of the memory + block's last byte, or \a bytes_begin if no bytes are to be read. + + \post The interim remainder is updated though CHAR_BIT * (((unsigned + char const *) bytes_end) - ((unsigned char const *) bytes_begin)) + modulo-2 polynomial divisions, where the division steps are altered for + unaugmented CRCs. + */ template < std::size_t Bits > void crc_basic::process_block @@ -796,6 +1838,26 @@ crc_basic::process_block } } +/** Updates the interim remainder with several bytes' worth of + altered-CRC-division steps. The bits within each byte are processed from + the highest place down if this->get_reflect_input() is + \c false, and lowest place up otherwise. The bytes themselves are processed + starting from the one pointed by \a buffer, forward-iterated (as if the + pointed-to objects were of unsigned char) until \a byte_count + bytes are read. + + \pre \a byte_count has to equal 0 if \a buffer is \c NULL or otherwise + doesn't point to valid memory. + \pre If \a buffer points within valid memory, then that block has to have + at least \a byte_count more valid bytes allocated from that point. + + \param[in] buffer The address where the memory block begins. + \param[in] byte_count The number of bytes in the memory block. + + \post The interim remainder is updated though CHAR_BIT * + byte_count modulo-2 polynomial divisions, where the + division steps are altered for unaugmented CRCs. + */ template < std::size_t Bits > inline void @@ -811,6 +1873,18 @@ crc_basic::process_bytes process_block( b, b + byte_count ); } +/** Computes the checksum of all the submitted bits since construction or the + last call to #reset. The checksum will be the raw checksum, i.e. the + (interim) remainder after all the modulo-2 polynomial division, plus any + output processing. + + \return (this->get_reflect_remainder() ? + REFLECT(this->get_interim_remainder()) : + this->get_interim_remainder()) ^ this->get_final_xor_value() + + \note Since checksums are meant to be compared, any higher-placed bits + (when the bit-length of #value_type exceeds #bit_count) will be set to 0. + */ template < std::size_t Bits > inline typename crc_basic::value_type @@ -818,8 +1892,8 @@ crc_basic::checksum ( ) const { - return ( (rft_out_ ? detail::reflector::reflect( rem_ ) : rem_) - ^ final_ ) & masking_type::sig_bits; + return ( (rft_out_ ? detail::reflect_unsigned( rem_, bit_count ) : + rem_) ^ final_ ) & detail::low_bits_mask_c::value; } @@ -829,19 +1903,35 @@ crc_basic::checksum #define BOOST_CRC_OPTIMAL_NAME crc_optimal +/** Constructs a \c crc_optimal object with a particular CRC formula to be + processed upon receiving input. The initial remainder may be overridden. + + \param[in] init_rem The (unaugmented) initial state of the polynomial + remainder. Defaults to #initial_remainder if omitted. + + \post #truncated_polynominal == + this->get_truncated_polynominal() + \post #initial_remainder == this->get_initial_remainder() + \post #final_xor_value == this->get_final_xor_value() + \post #reflect_input == this->get_reflect_input() + \post #reflect_remainder == this->get_reflect_remainder() + \post init_rem == this->get_interim_remainder() + \post (#reflect_remainder ? REFLECT(init_rem) : + init_rem) ^ #final_xor_value == this->checksum() + */ 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 + value_type init_rem // = initial_remainder ) - : rem_( helper_type::reflect(init_rem) ) + : rem_( reflect_i_type::reflect_q(init_rem) ) { - crc_table_type::init_table(); } +//! \copydetails boost::crc_basic::get_truncated_polynominal template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -851,9 +1941,10 @@ BOOST_CRC_OPTIMAL_NAME::get_truncated_polynominal ( ) const { - return TruncPoly; + return truncated_polynominal; } +//! \copydetails boost::crc_basic::get_initial_remainder template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -863,9 +1954,10 @@ BOOST_CRC_OPTIMAL_NAME::get_initial_remainder ( ) const { - return InitRem; + return initial_remainder; } +//! \copydetails boost::crc_basic::get_final_xor_value template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -875,9 +1967,10 @@ BOOST_CRC_OPTIMAL_NAME::get_final_xor_value ( ) const { - return FinalXor; + return final_xor_value; } +//! \copydetails boost::crc_basic::get_reflect_input template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -887,9 +1980,10 @@ BOOST_CRC_OPTIMAL_NAME::get_reflect_input ( ) const { - return ReflectIn; + return reflect_input; } +//! \copydetails boost::crc_basic::get_reflect_remainder template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -899,9 +1993,10 @@ BOOST_CRC_OPTIMAL_NAME::get_reflect_remainder ( ) const { - return ReflectRem; + return reflect_remainder; } +//! \copydetails boost::crc_basic::get_interim_remainder template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -912,9 +2007,24 @@ 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; + return reflect_i_type::reflect_q( rem_ ) & + detail::low_bits_mask_c::value; } +/** Changes the interim polynomial remainder to \a new_rem, purging any + influence previously submitted input has had. The value of the + 2i bit is the value of the coefficient of the polynomial's + xi term. + + \param[in] new_rem The (unaugmented) state of the polynomial remainder + starting from this point, with no output processing applied. Defaults to + this->get_initial_remainder() if omitted. + + \post new_rem == this->get_interim_remainder() + \post ((this->get_reflect_remainder() ? + REFLECT(new_rem) : new_rem) ^ + this->get_final_xor_value()) == this->checksum() + */ template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -922,12 +2032,18 @@ inline void BOOST_CRC_OPTIMAL_NAME::reset ( - typename BOOST_CRC_OPTIMAL_NAME::value_type new_rem // = InitRem + value_type new_rem // = initial_remainder ) { - rem_ = helper_type::reflect( new_rem ); + rem_ = reflect_i_type::reflect_q( new_rem ); } +/** \copydetails boost::crc_basic::process_byte + + \note Any modulo-2 polynomial divisions may use a table of pre-computed + remainder changes (as XOR masks) to speed computation when reading data + byte-wise. + */ template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -941,9 +2057,16 @@ BOOST_CRC_OPTIMAL_NAME::process_byte process_bytes( &byte, sizeof(byte) ); } +/** \copydetails boost::crc_basic::process_block + + \note Any modulo-2 polynomial divisions may use a table of pre-computed + remainder changes (as XOR masks) to speed computation when reading data + byte-wise. + */ 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_block ( @@ -951,20 +2074,16 @@ BOOST_CRC_OPTIMAL_NAME::process_block void const * bytes_end ) { - // Recompute the CRC for each byte passed - for ( unsigned char const * p - = static_cast(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 ]; - } + process_bytes( bytes_begin, static_cast(bytes_end) - + static_cast(bytes_begin) ); } +/** \copydetails boost::crc_basic::process_bytes + + \note Any modulo-2 polynomial divisions may use a table of pre-computed + remainder changes (as XOR masks) to speed computation when reading data + byte-wise. + */ template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -976,11 +2095,11 @@ BOOST_CRC_OPTIMAL_NAME::process_bytes std::size_t byte_count ) { - unsigned char const * const b = static_cast( - buffer ); - process_block( b, b + byte_count ); + rem_ = crc_table_type::crc_update( rem_, static_cast(buffer), byte_count ); } +//! \copydetails boost::crc_basic::checksum template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -990,10 +2109,29 @@ BOOST_CRC_OPTIMAL_NAME::checksum ( ) const { - return ( reflect_out_type::reflect(rem_) ^ get_final_xor_value() ) - & masking_type::sig_bits_fast; + return ( reflect_o_type::reflect_q(rem_) ^ get_final_xor_value() ) + & detail::low_bits_mask_c::value; } +/** Updates the interim remainder with a byte's worth of altered-CRC-division + steps. The bits within the byte are processed from the highest place down + if this->get_reflect_input() is \c false, and lowest place + up otherwise. This function is meant to present a function-object interface + to code that wants to process a stream of bytes with + std::for_each or similar range-processing algorithms. Since + some of these algorithms takes their function object by value, make sure to + copy back the result to this object so the updates can be remembered. + + \param[in] byte The new input byte. + + \post The interim remainder is updated though \c CHAR_BIT modulo-2 + polynomial divisions, where the division steps are altered for unaugmented + CRCs. + + \note Any modulo-2 polynomial divisions may use a table of pre-computed + remainder changes (as XOR masks) to speed computation when reading data + byte-wise. + */ template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -1007,6 +2145,22 @@ BOOST_CRC_OPTIMAL_NAME::operator () process_byte( byte ); } +/** Computes the checksum of all the submitted bits since construction or the + last call to #reset. The checksum will be the raw checksum, i.e. the + (interim) remainder after all the modulo-2 polynomial division, plus any + output processing. This function is meant to present a function-object + interface to code that wants to receive data like + std::generate_n or similar data-processing algorithms. Note + that if this object is used as a generator multiple times without an + intervening mutating operation, the same value will always be returned. + + \return (this->get_reflect_remainder() ? + REFLECT(this->get_interim_remainder()) : + this->get_interim_remainder()) ^ this->get_final_xor_value() + + \note Since checksums are meant to be compared, any higher-placed bits + (when the bit-length of #value_type exceeds #bit_count) will be set to 0. + */ template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -1022,6 +2176,43 @@ BOOST_CRC_OPTIMAL_NAME::operator () // CRC computation function definition -------------------------------------// +/** Computes the polynomial remainder of a CRC run, assuming that \a buffer and + \a byte_count describe a memory block representing the polynomial dividend. + The division steps are altered so the result directly gives a checksum, + without need to augment the memory block with scratch-space bytes. The + first byte is considered the highest order, going down for subsequent bytes. + + \pre 0 \< \a Bits \<= \c std\::numeric_limits\\::digits + + \tparam Bits The order of the modulo-2 polynomial divisor. (\e Width from + the RMCA) + \tparam TruncPoly The lowest coefficients of the divisor polynomial. The + highest-order coefficient is omitted and always assumed to be 1. + (\e Poly from the RMCA) + \tparam InitRem The (unaugmented) initial state of the polynomial + remainder. (\e Init from the RMCA) + \tparam FinalXor The (XOR) bit-mask to be applied to the output remainder, + after possible reflection but before returning. (\e XorOut from the RMCA) + \tparam ReflectIn If \c True, input bytes are read lowest-order bit first, + otherwise highest-order bit first. (\e RefIn from the RMCA) + \tparam ReflectRem If \c True, the output remainder is reflected before the + XOR-mask. (\e RefOut from the RMCA) + + \param[in] buffer The address where the memory block begins. + \param[in] byte_count The number of bytes in the memory block. + + \return The checksum, which is the last (interim) remainder plus any output + processing. + + \note Unaugmented-style CRC runs perform modulo-2 polynomial division in + an altered order. The trailing \a Bits number of zero-valued bits needed + to extracted an (unprocessed) checksum is virtually moved to near the + beginning of the message. This is OK since the XOR operation is + commutative and associative. It also means that you can get a checksum + anytime. Since data is being read byte-wise, a table of pre-computed + remainder changes (as XOR masks) can be used to speed computation. + + */ template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly, BOOST_CRC_PARM_TYPE InitRem, BOOST_CRC_PARM_TYPE FinalXor, bool ReflectIn, bool ReflectRem > @@ -1031,7 +2222,6 @@ crc ( void const * buffer, std::size_t byte_count - BOOST_CRC_DUMMY_INIT ) { BOOST_CRC_OPTIMAL_NAME computer; @@ -1040,57 +2230,67 @@ crc } -// Augmented-message CRC computation function definitions ------------------// +// Augmented-message CRC computation function definition -------------------// +/** Computes the polynomial remainder of a CRC run, assuming that \a buffer and + \a byte_count describe a memory block representing the polynomial dividend. + The first byte is considered the highest order, going down for subsequent + bytes. Within a byte, the highest-order bit is read first (corresponding to + \e RefIn = \c False in the RMCA). Check the other parts of this function's + documentation to see how a checksum can be gained and/or used. + + \pre 0 \< \a Bits \<= \c std\::numeric_limit\\::digits + + \tparam Bits The order of the modulo-2 polynomial divisor. (\e Width from + the RMCA) + \tparam TruncPoly The lowest coefficients of the divisor polynomial. The + highest-order coefficient is omitted and always assumed to be 1. + (\e Poly from the RMCA) + + \param[in] buffer The address where the memory block begins. + \param[in] byte_count The number of bytes in the memory block. + \param[in] initial_remainder The initial state of the polynomial + remainder, defaulting to zero if omitted. If you are reading a memory + block in multiple runs, put the return value of the previous run here. + (Note that initial-remainders given by RMCA parameter lists, as + \e Init, assume that the initial remainder is in its \b unaugmented state, + so you would need to convert the value to make it suitable for this + function. I currently don't provide a conversion routine.) + + \return The interim remainder, if no augmentation is used. A special value + if augmentation is used (see the notes). No output processing is done on + the value. (In RMCA terms, \e RefOut is \c False and \e XorOut is \c 0.) + + \note Augmented-style CRC runs use straight-up modulo-2 polynomial + division. Since data is being read byte-wise, a table of pre-computed + remainder changes (as XOR masks) can be used to speed computation. + \note Reading just a memory block will yield an interim remainder, and not + the final checksum. To get that checksum, allocate \a Bits / \c CHAR_BIT + bytes directly after the block and fill them with zero values, then extend + \a byte_count to include those extra bytes. A data block is corrupt if + the return value doesn't equal your separately given checksum. + \note Another way to perform a check is use the zero-byte extension method, + but replace the zero values with your separately-given checksum. The + checksum must be loaded in big-endian order. Here corruption, in either + the data block or the given checksum, is confirmed if the return value is + not zero. + \note The two checksum techniques assume the CRC-run is performed bit-wise, + while this function works byte-wise. That means that the techniques can + be used only if \c CHAR_BIT divides \a Bits evenly! + */ template < std::size_t Bits, BOOST_CRC_PARM_TYPE TruncPoly > typename uint_t::fast augmented_crc ( void const * buffer, std::size_t byte_count, - typename uint_t::fast initial_remainder - BOOST_ACRC_DUMMY_INIT + typename uint_t::fast initial_remainder // = 0u ) { - typedef unsigned char byte_type; - typedef detail::mask_uint_t masking_type; - typedef detail::crc_table_t crc_table_type; - - typename masking_type::fast rem = initial_remainder; - byte_type const * const b = static_cast( 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::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( buffer, byte_count, - static_cast::fast>(0) ); + return detail::low_bits_mask_c::value & + detail::byte_table_driven_crcs:: + augmented_crc_update( initial_remainder, static_cast(buffer), byte_count ); } @@ -1099,10 +2299,6 @@ augmented_crc // 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 diff --git a/3rdparty/boost/boost/cstdint.hpp b/3rdparty/boost/boost/cstdint.hpp index c8474c4623..967aacfd3e 100644 --- a/3rdparty/boost/boost/cstdint.hpp +++ b/3rdparty/boost/boost/cstdint.hpp @@ -52,9 +52,9 @@ // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG. // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990 // -#if defined(BOOST_HAS_STDINT_H) \ - && (!defined(__GLIBC__) \ - || defined(__GLIBC_HAVE_LONG_LONG) \ +#if defined(BOOST_HAS_STDINT_H) \ + && (!defined(__GLIBC__) \ + || defined(__GLIBC_HAVE_LONG_LONG) \ || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17))))) // The following #include is an implementation artifact; not part of interface. @@ -306,7 +306,7 @@ namespace boost // 64-bit types + intmax_t and uintmax_t ----------------------------------// # if defined(BOOST_HAS_LONG_LONG) && \ - !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \ + !defined(BOOST_MSVC) && !defined(BOOST_BORLANDC) && \ (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) # if defined(__hpux) @@ -451,7 +451,7 @@ INT#_C macros if they're not already defined (John Maddock). #ifndef INT64_C # define INT64_C(value) value##i64 #endif -# ifdef __BORLANDC__ +# ifdef BOOST_BORLANDC // Borland bug: appending ui8 makes the type a signed char # define UINT8_C(value) static_cast(value##u) # else diff --git a/3rdparty/boost/boost/current_function.hpp b/3rdparty/boost/boost/current_function.hpp index 86955cb041..731d1b13e5 100644 --- a/3rdparty/boost/boost/current_function.hpp +++ b/3rdparty/boost/boost/current_function.hpp @@ -10,13 +10,13 @@ // // boost/current_function.hpp - BOOST_CURRENT_FUNCTION // -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. +// Copyright 2002-2018 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/assert/current_function.html +// http://www.boost.org/libs/assert // namespace boost @@ -32,7 +32,7 @@ inline void current_function_helper() # define BOOST_CURRENT_FUNCTION "(unknown)" -#elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) +#elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) || defined(__clang__) # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ diff --git a/3rdparty/boost/boost/detail/basic_pointerbuf.hpp b/3rdparty/boost/boost/detail/basic_pointerbuf.hpp index 85618f92ab..a92a489fce 100644 --- a/3rdparty/boost/boost/detail/basic_pointerbuf.hpp +++ b/3rdparty/boost/boost/detail/basic_pointerbuf.hpp @@ -55,9 +55,9 @@ protected: // Marking those functions with `inline` suppresses the warnings. // There must be no harm from marking virtual functions as inline: inline virtual // call can be inlined ONLY when the compiler knows the "exact class". - inline base_type* setbuf(char_type* s, streamsize n); - inline typename this_type::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which); - inline typename this_type::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which); + inline base_type* setbuf(char_type* s, streamsize n) BOOST_OVERRIDE; + inline typename this_type::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which) BOOST_OVERRIDE; + inline typename this_type::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) BOOST_OVERRIDE; private: basic_pointerbuf& operator=(const basic_pointerbuf&); @@ -136,4 +136,3 @@ basic_pointerbuf::seekpos(pos_type sp, ::std::ios_base::openmode }} // namespace boost::detail #endif // BOOST_DETAIL_BASIC_POINTERBUF_HPP - diff --git a/3rdparty/boost/boost/detail/call_traits.hpp b/3rdparty/boost/boost/detail/call_traits.hpp index 36dea0003a..feca93da37 100644 --- a/3rdparty/boost/boost/detail/call_traits.hpp +++ b/3rdparty/boost/boost/detail/call_traits.hpp @@ -100,7 +100,7 @@ struct call_traits typedef T& param_type; // hh removed const }; -#if BOOST_WORKAROUND( __BORLANDC__, < 0x5A0 ) +#if BOOST_WORKAROUND( BOOST_BORLANDC, < 0x5A0 ) // 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 diff --git a/3rdparty/boost/boost/detail/endian.hpp b/3rdparty/boost/boost/detail/endian.hpp deleted file mode 100644 index f576c26b89..0000000000 --- a/3rdparty/boost/boost/detail/endian.hpp +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2013 Rene Rivera -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_DETAIL_ENDIAN_HPP -#define BOOST_DETAIL_ENDIAN_HPP - -// Use the Predef library for the detection of endianess. -#include - -#endif diff --git a/3rdparty/boost/boost/detail/indirect_traits.hpp b/3rdparty/boost/boost/detail/indirect_traits.hpp index 6294e40f6a..94e9b34dc2 100644 --- a/3rdparty/boost/boost/detail/indirect_traits.hpp +++ b/3rdparty/boost/boost/detail/indirect_traits.hpp @@ -4,6 +4,7 @@ // http://www.boost.org/LICENSE_1_0.txt) #ifndef INDIRECT_TRAITS_DWA2002131_HPP # define INDIRECT_TRAITS_DWA2002131_HPP +# include # include # include # include @@ -17,13 +18,7 @@ # include # include - -# include -# include -# include -# include -# include -# include +# include namespace boost { namespace detail { @@ -31,24 +26,24 @@ namespace boost { namespace detail { namespace indirect_traits { template -struct is_reference_to_const : mpl::false_ +struct is_reference_to_const : boost::false_type { }; template -struct is_reference_to_const : mpl::true_ +struct is_reference_to_const : boost::true_type { }; # if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround template -struct is_reference_to_const : mpl::true_ +struct is_reference_to_const : boost::true_type { }; -# endif +# endif template -struct is_reference_to_function : mpl::false_ +struct is_reference_to_function : boost::false_type { }; @@ -58,7 +53,7 @@ struct is_reference_to_function : is_function }; template -struct is_pointer_to_function : mpl::false_ +struct is_pointer_to_function : boost::false_type { }; @@ -70,7 +65,7 @@ struct is_pointer_to_function : is_function }; template -struct is_reference_to_member_function_pointer_impl : mpl::false_ +struct is_reference_to_member_function_pointer_impl : boost::false_type { }; @@ -85,18 +80,17 @@ template struct is_reference_to_member_function_pointer : is_reference_to_member_function_pointer_impl { - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T)) }; template struct is_reference_to_function_pointer_aux - : mpl::and_< - is_reference - , is_pointer_to_function< + : boost::integral_constant::value && + is_pointer_to_function< typename remove_cv< typename remove_reference::type >::type - > + >::value > { // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those @@ -104,94 +98,91 @@ struct is_reference_to_function_pointer_aux template struct is_reference_to_function_pointer - : mpl::if_< - is_reference_to_function - , mpl::false_ + : boost::detail::if_true< + is_reference_to_function::value + >::template then< + boost::false_type , is_reference_to_function_pointer_aux - >::type + >::type { }; template struct is_reference_to_non_const - : mpl::and_< - is_reference - , mpl::not_< - is_reference_to_const - > + : boost::integral_constant::value && + !is_reference_to_const::value > { }; template -struct is_reference_to_volatile : mpl::false_ +struct is_reference_to_volatile : boost::false_type { }; template -struct is_reference_to_volatile : mpl::true_ +struct is_reference_to_volatile : boost::true_type { }; # if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround template -struct is_reference_to_volatile : mpl::true_ +struct is_reference_to_volatile : boost::true_type { }; -# endif +# endif template -struct is_reference_to_pointer : mpl::false_ +struct is_reference_to_pointer : boost::false_type { }; template -struct is_reference_to_pointer : mpl::true_ +struct is_reference_to_pointer : boost::true_type { }; template -struct is_reference_to_pointer : mpl::true_ +struct is_reference_to_pointer : boost::true_type { }; template -struct is_reference_to_pointer : mpl::true_ +struct is_reference_to_pointer : boost::true_type { }; template -struct is_reference_to_pointer : mpl::true_ +struct is_reference_to_pointer : boost::true_type { }; template struct is_reference_to_class - : mpl::and_< - is_reference - , is_class< + : boost::integral_constant::value && + is_class< typename remove_cv< typename remove_reference::type >::type - > + >::value > { - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T)) }; template struct is_pointer_to_class - : mpl::and_< - is_pointer - , is_class< + : boost::integral_constant::value && + is_class< typename remove_cv< typename remove_pointer::type >::type - > + >::value > { - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T)) }; diff --git a/3rdparty/boost/boost/detail/is_xxx.hpp b/3rdparty/boost/boost/detail/is_xxx.hpp deleted file mode 100644 index 3f9a1265ee..0000000000 --- a/3rdparty/boost/boost/detail/is_xxx.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// 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 -# include -# include - - -# define BOOST_DETAIL_IS_XXX_DEF(name, qualified_name, nargs) \ -template \ -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 // BOOST_DETAIL_IS_XXX_DWA20051011_HPP diff --git a/3rdparty/boost/boost/detail/iterator.hpp b/3rdparty/boost/boost/detail/iterator.hpp deleted file mode 100644 index 2498ef448f..0000000000 --- a/3rdparty/boost/boost/detail/iterator.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// (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) - -#ifndef ITERATOR_DWA122600_HPP_ -#define ITERATOR_DWA122600_HPP_ - -// This header is obsolete and will be deprecated. - -#include -#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) -#include -#endif - -namespace boost -{ - -namespace detail -{ - -using std::iterator_traits; -using std::distance; - -#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) -// std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters -// when one of the arguments is an array and the other one is a pointer. -template< typename T, std::size_t N > -inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right) -{ - return std::distance(static_cast< T* >(left), right); -} -#endif - -} // namespace detail - -} // namespace boost - -#endif // ITERATOR_DWA122600_HPP_ diff --git a/3rdparty/boost/boost/detail/lcast_precision.hpp b/3rdparty/boost/boost/detail/lcast_precision.hpp index 2be88fd87f..84bf1222b1 100644 --- a/3rdparty/boost/boost/detail/lcast_precision.hpp +++ b/3rdparty/boost/boost/detail/lcast_precision.hpp @@ -17,7 +17,7 @@ #ifndef BOOST_NO_IS_ABSTRACT // Fix for SF:1358600 - lexical_cast & pure virtual functions & VC 8 STL -#include +#include #include #endif @@ -47,8 +47,8 @@ struct lcast_precision #ifdef BOOST_NO_IS_ABSTRACT typedef std::numeric_limits limits; // No fix for SF:1358600. #else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_abstract + typedef BOOST_DEDUCED_TYPENAME boost::conditional< + boost::is_abstract::value , std::numeric_limits , std::numeric_limits >::type limits; @@ -105,8 +105,8 @@ inline std::streamsize lcast_get_precision(T* = 0) #ifdef BOOST_NO_IS_ABSTRACT typedef std::numeric_limits limits; // No fix for SF:1358600. #else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_abstract + typedef BOOST_DEDUCED_TYPENAME boost::conditional< + boost::is_abstract::value , std::numeric_limits , std::numeric_limits >::type limits; diff --git a/3rdparty/boost/boost/detail/no_exceptions_support.hpp b/3rdparty/boost/boost/detail/no_exceptions_support.hpp deleted file mode 100644 index 7d17454a73..0000000000 --- a/3rdparty/boost/boost/detail/no_exceptions_support.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * Distributed under the 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_NO_EXCEPTIONS_SUPPORT_HPP -#define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP - -// The header file at this path is deprecated; -// use boost/core/no_exceptions_support.hpp instead. - -#include - -#endif diff --git a/3rdparty/boost/boost/detail/reference_content.hpp b/3rdparty/boost/boost/detail/reference_content.hpp index 36b80d244e..c93ea6fdd0 100644 --- a/3rdparty/boost/boost/detail/reference_content.hpp +++ b/3rdparty/boost/boost/detail/reference_content.hpp @@ -15,15 +15,15 @@ #include "boost/config.hpp" -# include "boost/mpl/bool.hpp" +# include "boost/type_traits/integral_constant.hpp" # include "boost/type_traits/has_nothrow_copy.hpp" -#include "boost/mpl/void.hpp" - namespace boost { namespace detail { +struct void_type {}; + /////////////////////////////////////////////////////////////////////////////// // (detail) class template reference_content // @@ -71,7 +71,7 @@ public: // queries // Wraps with reference_content if specified type is reference. // -template struct make_reference_content; +template struct make_reference_content; template @@ -88,7 +88,7 @@ struct make_reference_content< T& > template <> -struct make_reference_content< mpl::void_ > +struct make_reference_content< void_type > { template struct apply @@ -96,7 +96,7 @@ struct make_reference_content< mpl::void_ > { }; - typedef mpl::void_ type; + typedef void_type type; }; } // namespace detail @@ -110,7 +110,7 @@ template struct has_nothrow_copy< ::boost::detail::reference_content< T& > > - : mpl::true_ + : boost::true_type { }; diff --git a/3rdparty/boost/boost/detail/select_type.hpp b/3rdparty/boost/boost/detail/select_type.hpp new file mode 100644 index 0000000000..c13946f338 --- /dev/null +++ b/3rdparty/boost/boost/detail/select_type.hpp @@ -0,0 +1,36 @@ +// (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 +// 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::type + + // HP aCC cannot deal with missing names for template value parameters + template struct if_true + { + template + struct then { typedef T type; }; + }; + + template <> + struct if_true + { + template + struct then { typedef F type; }; + }; +}} +#endif // SELECT_TYPE_DWA20010206_HPP diff --git a/3rdparty/boost/boost/detail/sp_typeinfo.hpp b/3rdparty/boost/boost/detail/sp_typeinfo.hpp deleted file mode 100644 index 4e4de55b05..0000000000 --- a/3rdparty/boost/boost/detail/sp_typeinfo.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED -#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_typeinfo.hpp -// -// Deprecated, please use boost/core/typeinfo.hpp -// -// Copyright 2007 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#include - -namespace boost -{ - -namespace detail -{ - -typedef boost::core::typeinfo sp_typeinfo; - -} // namespace detail - -} // namespace boost - -#define BOOST_SP_TYPEID(T) BOOST_CORE_TYPEID(T) - -#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/3rdparty/boost/boost/exception/exception.hpp b/3rdparty/boost/boost/exception/exception.hpp index c0fdaf9e55..37a582c2e3 100644 --- a/3rdparty/boost/boost/exception/exception.hpp +++ b/3rdparty/boost/boost/exception/exception.hpp @@ -3,23 +3,32 @@ //Distributed under the Boost Software License, Version 1.0. (See accompanying //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef UUID_274DA366004E11DCB1DDFE2E56D89593 -#define UUID_274DA366004E11DCB1DDFE2E56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif +#ifndef BOOST_EXCEPTION_274DA366004E11DCB1DDFE2E56D89593 +#define BOOST_EXCEPTION_274DA366004E11DCB1DDFE2E56D89593 + +#include #ifdef BOOST_EXCEPTION_MINI_BOOST #include namespace boost { namespace exception_detail { using std::shared_ptr; } } #else -namespace boost { template class shared_ptr; }; +namespace boost { template class shared_ptr; } namespace boost { namespace exception_detail { using boost::shared_ptr; } } #endif +#if !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) +#if __GNUC__*100+__GNUC_MINOR__>301 +#pragma GCC system_header +#endif +#ifdef __clang__ +#pragma clang system_header +#endif +#ifdef _MSC_VER +#pragma warning(push,1) +#pragma warning(disable: 4265) +#endif +#endif + namespace boost { @@ -140,17 +149,9 @@ boost } }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class exception; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif + class + BOOST_SYMBOL_VISIBLE + exception; namespace exception_detail @@ -170,7 +171,7 @@ boost protected: - ~error_info_container() throw() + ~error_info_container() BOOST_NOEXCEPT_OR_NOTHROW { } }; @@ -216,12 +217,8 @@ boost E const & set_info( E const &, throw_line const & ); } -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif class + BOOST_SYMBOL_VISIBLE exception { // @@ -242,7 +239,7 @@ boost #ifdef __HP_aCC //On HP aCC, this protected copy constructor prevents throwing boost::exception. //On all other platforms, the same effect is achieved by the pure virtual destructor. - exception( exception const & x ) throw(): + exception( exception const & x ) BOOST_NOEXCEPT_OR_NOTHROW: data_(x.data_), throw_function_(x.throw_function_), throw_file_(x.throw_file_), @@ -251,7 +248,7 @@ boost } #endif - virtual ~exception() throw() + virtual ~exception() BOOST_NOEXCEPT_OR_NOTHROW #ifndef __HP_aCC = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors. #endif @@ -293,15 +290,10 @@ boost mutable char const * throw_file_; mutable int throw_line_; }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif inline exception:: - ~exception() throw() + ~exception() BOOST_NOEXCEPT_OR_NOTHROW { } @@ -338,13 +330,9 @@ boost namespace exception_detail { -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif template struct + BOOST_SYMBOL_VISIBLE error_info_injector: public T, public exception @@ -355,15 +343,10 @@ boost { } - ~error_info_injector() throw() + ~error_info_injector() BOOST_NOEXCEPT_OR_NOTHROW { } }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif struct large_size { char c[256]; }; large_size dispatch_boost_exception( exception const * ); @@ -411,12 +394,8 @@ boost namespace exception_detail { -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif class + BOOST_SYMBOL_VISIBLE clone_base { public: @@ -425,15 +404,10 @@ boost virtual void rethrow() const = 0; virtual - ~clone_base() throw() + ~clone_base() BOOST_NOEXCEPT_OR_NOTHROW { } }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif inline void @@ -454,13 +428,9 @@ boost { } -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif template class + BOOST_SYMBOL_VISIBLE clone_impl: public T, public virtual clone_base @@ -481,7 +451,7 @@ boost copy_boost_exception(this,&x); } - ~clone_impl() throw() + ~clone_impl() BOOST_NOEXCEPT_OR_NOTHROW { } @@ -500,11 +470,6 @@ boost } }; } -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif template inline @@ -518,4 +483,5 @@ boost #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) #pragma warning(pop) #endif -#endif + +#endif // #ifndef BOOST_EXCEPTION_274DA366004E11DCB1DDFE2E56D89593 diff --git a/3rdparty/boost/boost/function.hpp b/3rdparty/boost/boost/function.hpp index 68a25ab069..ef907e0ff1 100644 --- a/3rdparty/boost/boost/function.hpp +++ b/3rdparty/boost/boost/function.hpp @@ -23,7 +23,7 @@ #include // unary_function, binary_function #include -#include +#include // 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 diff --git a/3rdparty/boost/boost/function/function_base.hpp b/3rdparty/boost/boost/function/function_base.hpp index 841affb49a..bd0e548bdf 100644 --- a/3rdparty/boost/boost/function/function_base.hpp +++ b/3rdparty/boost/boost/function/function_base.hpp @@ -26,13 +26,13 @@ #include #include #include -#include -#include +#include +#include #include #ifndef BOOST_NO_SFINAE -# include "boost/utility/enable_if.hpp" +#include #else -# include "boost/mpl/bool.hpp" +#include #endif #include #include @@ -50,7 +50,7 @@ #endif // __ICL etc # define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - typename ::boost::enable_if_c< \ + typename ::boost::enable_if_< \ !(::boost::is_integral::value), \ Type>::type @@ -101,7 +101,7 @@ namespace boost { } obj_ref; }; - union function_buffer + union BOOST_SYMBOL_VISIBLE function_buffer { // Type-specific union members mutable function_buffer_members members; @@ -152,15 +152,15 @@ namespace boost { template class get_function_tag { - typedef typename mpl::if_c<(is_pointer::value), + typedef typename conditional<(is_pointer::value), function_ptr_tag, function_obj_tag>::type ptr_or_obj_tag; - typedef typename mpl::if_c<(is_member_pointer::value), + typedef typename conditional<(is_member_pointer::value), member_ptr_tag, ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag; - typedef typename mpl::if_c<(is_reference_wrapper::value), + typedef typename conditional<(is_reference_wrapper::value), function_obj_ref_tag, ptr_or_obj_or_mem_tag>::type or_ref_tag; @@ -328,7 +328,7 @@ namespace boost { // Function objects that fit in the small-object buffer. static inline void manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::true_) + functor_manager_operation_type op, true_type) { functor_manager_common::manage_small(in_buffer,out_buffer,op); } @@ -336,7 +336,7 @@ namespace boost { // Function objects that require heap allocation static inline void manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::false_) + functor_manager_operation_type op, false_type) { if (op == clone_functor_tag) { // Clone the functor @@ -377,7 +377,7 @@ namespace boost { functor_manager_operation_type op, function_obj_tag) { manager(in_buffer, out_buffer, op, - mpl::bool_<(function_allows_small_object_optimization::value)>()); + integral_constant::value)>()); } // For member pointers, we use the small-object optimization buffer. @@ -385,7 +385,7 @@ namespace boost { manager(const function_buffer& in_buffer, function_buffer& out_buffer, functor_manager_operation_type op, member_ptr_tag) { - manager(in_buffer, out_buffer, op, mpl::true_()); + manager(in_buffer, out_buffer, op, true_type()); } public: @@ -396,16 +396,12 @@ namespace boost { functor_manager_operation_type op) { typedef typename get_function_tag::type tag_type; - switch (op) { - case get_functor_type_tag: + if (op == get_functor_type_tag) { out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); out_buffer.members.type.const_qualified = false; out_buffer.members.type.volatile_qualified = false; - return; - - default: + } else { manager(in_buffer, out_buffer, op, tag_type()); - return; } } }; @@ -427,7 +423,7 @@ namespace boost { // Function objects that fit in the small-object buffer. static inline void manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::true_) + functor_manager_operation_type op, true_type) { functor_manager_common::manage_small(in_buffer,out_buffer,op); } @@ -435,7 +431,7 @@ namespace boost { // Function objects that require heap allocation static inline void manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::false_) + functor_manager_operation_type op, false_type) { typedef functor_wrapper functor_wrapper_type; #if defined(BOOST_NO_CXX11_ALLOCATOR) @@ -499,7 +495,7 @@ namespace boost { functor_manager_operation_type op, function_obj_tag) { manager(in_buffer, out_buffer, op, - mpl::bool_<(function_allows_small_object_optimization::value)>()); + integral_constant::value)>()); } public: @@ -510,16 +506,12 @@ namespace boost { functor_manager_operation_type op) { typedef typename get_function_tag::type tag_type; - switch (op) { - case get_functor_type_tag: + if (op == get_functor_type_tag) { out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); out_buffer.members.type.const_qualified = false; out_buffer.members.type.volatile_qualified = false; - return; - - default: + } else { manager(in_buffer, out_buffer, op, tag_type()); - return; } } }; @@ -530,24 +522,24 @@ namespace boost { #ifdef BOOST_NO_SFINAE // These routines perform comparisons between a Boost.Function // object and an arbitrary function object (when the last - // parameter is mpl::bool_) or against zero (when the - // last parameter is mpl::bool_). They are only necessary + // parameter is false_type) or against zero (when the + // last parameter is true_type). They are only necessary // for compilers that don't support SFINAE. template bool - compare_equal(const Function& f, const Functor&, int, mpl::bool_) + compare_equal(const Function& f, const Functor&, int, true_type) { return f.empty(); } template bool compare_not_equal(const Function& f, const Functor&, int, - mpl::bool_) + true_type) { return !f.empty(); } template bool compare_equal(const Function& f, const Functor& g, long, - mpl::bool_) + false_type) { if (const Functor* fp = f.template target()) return function_equal(*fp, g); @@ -557,7 +549,7 @@ namespace boost { template bool compare_equal(const Function& f, const reference_wrapper& g, - int, mpl::bool_) + int, false_type) { if (const Functor* fp = f.template target()) return fp == g.get_pointer(); @@ -567,7 +559,7 @@ namespace boost { template bool compare_not_equal(const Function& f, const Functor& g, long, - mpl::bool_) + false_type) { if (const Functor* fp = f.template target()) return !function_equal(*fp, g); @@ -578,7 +570,7 @@ namespace boost { bool compare_not_equal(const Function& f, const reference_wrapper& g, int, - mpl::bool_) + false_type) { if (const Functor* fp = f.template target()) return fp != g.get_pointer(); @@ -710,7 +702,7 @@ public: // should be protected, but GCC 2.95.3 will fail to allow access * The bad_function_call exception class is thrown when a boost::function * object is invoked */ -class bad_function_call : public std::runtime_error +class BOOST_SYMBOL_VISIBLE bad_function_call : public std::runtime_error { public: bad_function_call() : std::runtime_error("call to empty boost::function") {} @@ -750,28 +742,28 @@ inline bool operator!=(detail::function::useless_clear_type*, template inline bool operator==(const function_base& f, Functor g) { - typedef mpl::bool_<(is_integral::value)> integral; + typedef integral_constant::value)> integral; return detail::function::compare_equal(f, g, 0, integral()); } template inline bool operator==(Functor g, const function_base& f) { - typedef mpl::bool_<(is_integral::value)> integral; + typedef integral_constant::value)> integral; return detail::function::compare_equal(f, g, 0, integral()); } template inline bool operator!=(const function_base& f, Functor g) { - typedef mpl::bool_<(is_integral::value)> integral; + typedef integral_constant::value)> integral; return detail::function::compare_not_equal(f, g, 0, integral()); } template inline bool operator!=(Functor g, const function_base& f) { - typedef mpl::bool_<(is_integral::value)> integral; + typedef integral_constant::value)> integral; return detail::function::compare_not_equal(f, g, 0, integral()); } #else diff --git a/3rdparty/boost/boost/function/function_template.hpp b/3rdparty/boost/boost/function/function_template.hpp index 177b60a7b4..26f1d67d03 100644 --- a/3rdparty/boost/boost/function/function_template.hpp +++ b/3rdparty/boost/boost/function/function_template.hpp @@ -11,7 +11,7 @@ // Note: this header is a header template and must NOT have multiple-inclusion // protection. #include -#include +#include #if defined(BOOST_MSVC) # pragma warning( push ) @@ -29,8 +29,7 @@ #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES # define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a) #else -# include -# define BOOST_FUNCTION_ARG(J,I,D) ::boost::forward< BOOST_PP_CAT(T,I) >(BOOST_PP_CAT(a,I)) +# define BOOST_FUNCTION_ARG(J,I,D) static_cast(BOOST_PP_CAT(a,I)) # define BOOST_FUNCTION_ARGS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG,BOOST_PP_EMPTY) #endif @@ -240,7 +239,7 @@ namespace boost { > struct BOOST_FUNCTION_GET_FUNCTION_INVOKER { - typedef typename mpl::if_c<(is_void::value), + typedef typename conditional<(is_void::value), BOOST_FUNCTION_VOID_FUNCTION_INVOKER< FunctionPtr, R BOOST_FUNCTION_COMMA @@ -261,7 +260,7 @@ namespace boost { > struct BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER { - typedef typename mpl::if_c<(is_void::value), + typedef typename conditional<(is_void::value), BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA @@ -282,7 +281,7 @@ namespace boost { > struct BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER { - typedef typename mpl::if_c<(is_void::value), + typedef typename conditional<(is_void::value), BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA @@ -305,7 +304,7 @@ namespace boost { > struct BOOST_FUNCTION_GET_MEMBER_INVOKER { - typedef typename mpl::if_c<(is_void::value), + typedef typename conditional<(is_void::value), BOOST_FUNCTION_VOID_MEMBER_INVOKER< MemberPtr, R BOOST_FUNCTION_COMMA @@ -350,9 +349,8 @@ namespace boost { typedef functor_manager manager_type; }; - template + template struct apply_a { typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER< @@ -385,9 +383,8 @@ namespace boost { typedef functor_manager manager_type; }; - template + template struct apply_a { typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER< @@ -420,9 +417,8 @@ namespace boost { typedef functor_manager manager_type; }; - template + template struct apply_a { typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< @@ -454,9 +450,8 @@ namespace boost { typedef reference_manager manager_type; }; - template + template struct apply_a { typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< @@ -567,27 +562,27 @@ namespace boost { // Assign to a function object using the small object optimization template void - assign_functor(FunctionObj f, function_buffer& functor, mpl::true_) const + assign_functor(FunctionObj f, function_buffer& functor, true_type) const { new (reinterpret_cast(functor.data)) FunctionObj(f); } template void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, mpl::true_) const + assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const { - assign_functor(f,functor,mpl::true_()); + assign_functor(f,functor,true_type()); } // Assign to a function object allocated on the heap. template void - assign_functor(FunctionObj f, function_buffer& functor, mpl::false_) const + assign_functor(FunctionObj f, function_buffer& functor, false_type) const { functor.members.obj_ptr = new FunctionObj(f); } template void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, mpl::false_) const + assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const { typedef functor_wrapper functor_wrapper_type; #if defined(BOOST_NO_CXX11_ALLOCATOR) @@ -615,7 +610,7 @@ namespace boost { { if (!boost::detail::function::has_empty_target(boost::addressof(f))) { assign_functor(f, functor, - mpl::bool_<(function_allows_small_object_optimization::value)>()); + integral_constant::value)>()); return true; } else { return false; @@ -627,7 +622,7 @@ namespace boost { { if (!boost::detail::function::has_empty_target(boost::addressof(f))) { assign_functor_a(f, functor, a, - mpl::bool_<(function_allows_small_object_optimization::value)>()); + integral_constant::value)>()); return true; } else { return false; @@ -708,14 +703,14 @@ namespace boost { typedef BOOST_FUNCTION_FUNCTION self_type; - BOOST_FUNCTION_FUNCTION() : function_base() { } + BOOST_DEFAULTED_FUNCTION(BOOST_FUNCTION_FUNCTION(), : function_base() {}) // MSVC chokes if the following two constructors are collapsed into // one with a default parameter. template BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< + ,typename boost::enable_if_< !(is_integral::value), int>::type = 0 #endif // BOOST_NO_SFINAE @@ -727,7 +722,7 @@ namespace boost { template BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< + ,typename boost::enable_if_< !(is_integral::value), int>::type = 0 #endif // BOOST_NO_SFINAE @@ -776,7 +771,7 @@ namespace boost { // construct. template #ifndef BOOST_NO_SFINAE - typename boost::enable_if_c< + typename boost::enable_if_< !(is_integral::value), BOOST_FUNCTION_FUNCTION&>::type #else @@ -903,11 +898,20 @@ namespace boost { { if (!f.empty()) { this->vtable = f.vtable; - if (this->has_trivial_copy_and_destroy()) + if (this->has_trivial_copy_and_destroy()) { // Don't operate on storage directly since union type doesn't relax // strict aliasing rules, despite of having member char type. +# if defined(BOOST_GCC) && (BOOST_GCC >= 40700) +# pragma GCC diagnostic push + // This warning is technically correct, but we don't want to pay the price for initializing + // just to silence a warning: https://github.com/boostorg/function/issues/27 +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +# endif std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); - else +# if defined(BOOST_GCC) && (BOOST_GCC >= 40700) +# pragma GCC diagnostic pop +# endif + } else get_vtable()->base.manager(f.functor, this->functor, boost::detail::function::clone_functor_tag); } @@ -955,9 +959,8 @@ namespace boost { typedef typename boost::detail::function::get_function_tag::type tag; typedef boost::detail::function::BOOST_FUNCTION_GET_INVOKER get_invoker; typedef typename get_invoker:: - template apply_a + template apply_a handler_type; typedef typename handler_type::invoker_type invoker_type; @@ -993,11 +996,20 @@ namespace boost { BOOST_TRY { if (!f.empty()) { this->vtable = f.vtable; - if (this->has_trivial_copy_and_destroy()) + if (this->has_trivial_copy_and_destroy()) { // Don't operate on storage directly since union type doesn't relax // strict aliasing rules, despite of having member char type. +# if defined(BOOST_GCC) && (BOOST_GCC >= 40700) +# pragma GCC diagnostic push + // This warning is technically correct, but we don't want to pay the price for initializing + // just to silence a warning: https://github.com/boostorg/function/issues/27 +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +# endif std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data)); - else +# if defined(BOOST_GCC) && (BOOST_GCC >= 40700) +# pragma GCC diagnostic pop +# endif + } else get_vtable()->base.manager(f.functor, this->functor, boost::detail::function::move_functor_tag); f.vtable = 0; @@ -1046,7 +1058,7 @@ template #if BOOST_FUNCTION_NUM_ARGS == 0 #define BOOST_FUNCTION_PARTIAL_SPEC R (void) #else -#define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS,T)) +#define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_FUNCTION_TEMPLATE_ARGS) #endif template public: - function() : base_type() {} + BOOST_DEFAULTED_FUNCTION(function(), : base_type() {}) template function(Functor f #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< + ,typename boost::enable_if_< !(is_integral::value), int>::type = 0 #endif @@ -1077,7 +1089,7 @@ public: template function(Functor f, Allocator a #ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< + ,typename boost::enable_if_< !(is_integral::value), int>::type = 0 #endif @@ -1116,7 +1128,7 @@ public: template #ifndef BOOST_NO_SFINAE - typename boost::enable_if_c< + typename boost::enable_if_< !(is_integral::value), self_type&>::type #else diff --git a/3rdparty/boost/boost/function_output_iterator.hpp b/3rdparty/boost/boost/function_output_iterator.hpp deleted file mode 100644 index 15dbcb9f54..0000000000 --- a/3rdparty/boost/boost/function_output_iterator.hpp +++ /dev/null @@ -1,14 +0,0 @@ -// (C) Copyright Andrey Semashev 2017. -// Distributed under the 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_FUNCTION_OUTPUT_ITERATOR_HPP -#define BOOST_FUNCTION_OUTPUT_ITERATOR_HPP - -// This is a deprecated header left for backward compatibility. -// Use boost/iterator/function_output_iterator.hpp instead. - -#include - -#endif // BOOST_FUNCTION_OUTPUT_ITERATOR_HPP diff --git a/3rdparty/boost/boost/functional/hash.hpp b/3rdparty/boost/boost/functional/hash.hpp deleted file mode 100644 index 327a3ecae7..0000000000 --- a/3rdparty/boost/boost/functional/hash.hpp +++ /dev/null @@ -1,6 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include diff --git a/3rdparty/boost/boost/fusion/adapted/mpl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl.hpp new file mode 100644 index 0000000000..3eca0320ad --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl.hpp @@ -0,0 +1,23 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_MPL_31122005_1152) +#define BOOST_FUSION_MPL_31122005_1152 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/at_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/at_impl.hpp new file mode 100644 index 0000000000..232ca4df5f --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/at_impl.hpp @@ -0,0 +1,42 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_AT_IMPL_31122005_1642) +#define BOOST_FUSION_AT_IMPL_31122005_1642 + +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct at_impl; + + template <> + struct at_impl + { + template + struct apply + { + typedef typename mpl::at::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence) + { + return type(); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/begin_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/begin_impl.hpp new file mode 100644 index 0000000000..3f087bda48 --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/begin_impl.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_BEGIN_IMPL_31122005_1209) +#define BOOST_FUSION_BEGIN_IMPL_31122005_1209 + +#include +#include +#include +#include + +namespace boost { namespace fusion { + + struct mpl_sequence_tag; + + namespace extension + { + template + struct begin_impl; + + template <> + struct begin_impl + { + template + struct apply + { + typedef typename mpl::begin< + typename remove_const::type + >::type iterator; + typedef mpl_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence) + { + return type(); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/category_of_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/category_of_impl.hpp new file mode 100644 index 0000000000..8cf2f88bfe --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/category_of_impl.hpp @@ -0,0 +1,55 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_CATEGORY_OF_IMPL_20060217_2141) +#define BOOST_FUSION_CATEGORY_OF_IMPL_20060217_2141 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { + + namespace detail + { + template + struct mpl_sequence_category_of + { + // assumes T is an mpl sequence + // there should be no way this will ever be + // called where T is an mpl iterator + + BOOST_STATIC_ASSERT(mpl::is_sequence::value); + typedef typename + mpl_iterator_category< + typename mpl::begin::type::category + >::type + type; + }; + } + + struct mpl_sequence_tag; + + namespace extension + { + template + struct category_of_impl; + + template<> + struct category_of_impl + { + template + struct apply + : detail::mpl_sequence_category_of + {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/empty_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/empty_impl.hpp new file mode 100644 index 0000000000..4e385ff513 --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/empty_impl.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_EMPTY_IMPL_31122005_1554) +#define BOOST_FUSION_EMPTY_IMPL_31122005_1554 + +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct empty_impl; + + template <> + struct empty_impl + { + template + struct apply : mpl::empty {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/end_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/end_impl.hpp new file mode 100644 index 0000000000..7ef13fb4f8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/end_impl.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_END_IMPL_31122005_1237) +#define BOOST_FUSION_END_IMPL_31122005_1237 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct end_impl; + + template <> + struct end_impl + { + template + struct apply + { + typedef typename mpl::end< + typename remove_const::type + >::type iterator; + typedef mpl_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence) + { + return type(); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/has_key_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/has_key_impl.hpp new file mode 100644 index 0000000000..9e5a1dc4d2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/has_key_impl.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_HAS_KEY_IMPL_31122005_1647) +#define BOOST_FUSION_HAS_KEY_IMPL_31122005_1647 + +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct has_key_impl; + + template <> + struct has_key_impl + { + template + struct apply : mpl::has_key {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/is_sequence_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/is_sequence_impl.hpp new file mode 100644 index 0000000000..caed9e62de --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/is_sequence_impl.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_IS_SEQUENCE_IMPL_31122005_1505) +#define BOOST_FUSION_IS_SEQUENCE_IMPL_31122005_1505 + +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct is_sequence_impl; + + template<> + struct is_sequence_impl + { + template + struct apply : mpl::true_ {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/is_view_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/is_view_impl.hpp new file mode 100644 index 0000000000..b494248972 --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/is_view_impl.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_IS_VIEW_IMPL_03202006_0048) +#define BOOST_FUSION_IS_VIEW_IMPL_03202006_0048 + +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct is_view_impl; + + template<> + struct is_view_impl + { + template + struct apply : mpl::true_ + {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/size_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/size_impl.hpp new file mode 100644 index 0000000000..379b97dca8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/size_impl.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_SIZE_IMPL_31122005_1508) +#define BOOST_FUSION_SIZE_IMPL_31122005_1508 + +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct size_impl; + + template <> + struct size_impl + { + template + struct apply : mpl::size {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/detail/value_at_impl.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/detail/value_at_impl.hpp new file mode 100644 index 0000000000..0d3eb6524b --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/detail/value_at_impl.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_VALUE_AT_IMPL_31122005_1621) +#define BOOST_FUSION_VALUE_AT_IMPL_31122005_1621 + +#include +#include + +namespace boost { namespace fusion +{ + struct mpl_sequence_tag; + + namespace extension + { + template + struct value_at_impl; + + template <> + struct value_at_impl + { + template + struct apply : mpl::at {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/adapted/mpl/mpl_iterator.hpp b/3rdparty/boost/boost/fusion/adapted/mpl/mpl_iterator.hpp new file mode 100644 index 0000000000..87de32ada1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/adapted/mpl/mpl_iterator.hpp @@ -0,0 +1,128 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_MPL_ITERATOR_05052005_0731) +#define FUSION_MPL_ITERATOR_05052005_0731 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct mpl_iterator + : iterator_facade< + mpl_iterator + , typename detail::mpl_iterator_category::type + > + { + typedef typename remove_const::type iterator_type; + + template + struct value_of : mpl::deref {}; + + template + struct deref + { + typedef typename mpl::deref< + typename Iterator::iterator_type>::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator) + { + return type(); + } + }; + + template + struct next + { + typedef mpl_iterator< + typename mpl::next::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator) + { + return type(); + } + }; + + template + struct prior + { + typedef mpl_iterator< + typename mpl::prior::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator) + { + return type(); + } + }; + + template + struct advance + { + typedef mpl_iterator< + typename mpl::advance::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& /*i*/) + { + return type(); + } + }; + + template + struct distance : + mpl::distance< + typename I1::iterator_type + , typename I2::iterator_type> + { + typedef typename + mpl::distance< + typename I1::iterator_type + , typename I2::iterator_type + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(I1 const&, I2 const&) + { + return type(); + } + }; + }; +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::mpl_iterator > + { }; +} +#endif + +#endif + + diff --git a/3rdparty/boost/boost/fusion/algorithm/query/detail/find_if.hpp b/3rdparty/boost/boost/fusion/algorithm/query/detail/find_if.hpp new file mode 100644 index 0000000000..06a7af79b7 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/query/detail/find_if.hpp @@ -0,0 +1,251 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2007 Dan Marsden + Copyright (c) 2009 Christopher Schmidt + Copyright (c) 2018 Kohei Takahashi + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_FIND_IF_05052005_1107) +#define FUSION_FIND_IF_05052005_1107 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct apply_filter + { + typedef typename mpl::apply1< + Pred, Iterator>::type type; + BOOST_STATIC_CONSTANT(int, value = type::value); + }; + + template + struct main_find_if; + + template + struct recursive_find_if + { + typedef typename + main_find_if< + typename result_of::next::type, Last, Pred + >::type + type; + }; + + template + struct main_find_if + { + typedef mpl::or_< + result_of::equal_to + , apply_filter > + filter; + + typedef typename + mpl::eval_if< + filter + , mpl::identity + , recursive_find_if + >::type + type; + }; + + template< + typename First, typename Last, + typename Pred, bool> + struct choose_find_if; + + template + struct choose_find_if + : main_find_if + {}; + + template + struct unroll_again; + + template + struct apply_offset_filter + { + typedef typename result_of::advance_c::type Shifted; + typedef typename + mpl::apply1< + Pred + , Shifted + >::type + type; + BOOST_STATIC_CONSTANT(int, value = type::value); + }; + + template + struct unrolled_find_if + { + typedef typename mpl::eval_if< + apply_filter, + mpl::identity, + mpl::eval_if< + apply_offset_filter, + result_of::advance_c, + mpl::eval_if< + apply_offset_filter, + result_of::advance_c, + mpl::eval_if< + apply_offset_filter, + result_of::advance_c, + unroll_again< + Iter, + Pred, + n, + 4> > > > >::type type; + }; + + template + struct unrolled_find_if + { + typedef typename mpl::eval_if< + apply_filter, + mpl::identity, + mpl::eval_if< + apply_offset_filter, + result_of::advance_c, + mpl::eval_if< + apply_offset_filter, + result_of::advance_c, + result_of::advance_c > > >::type type; + }; + + template + struct unrolled_find_if + { + typedef typename mpl::eval_if< + apply_filter, + mpl::identity, + mpl::eval_if< + apply_offset_filter, + result_of::advance_c, + result_of::advance_c > >::type type; + }; + + template + struct unrolled_find_if + { + typedef typename mpl::eval_if< + apply_filter, + mpl::identity, + result_of::advance_c >::type type; + }; + + template + struct unroll_again + { + typedef typename unrolled_find_if< + typename result_of::advance_c::type, + Pred, + n-unrolling>::type type; + }; + + template + struct unrolled_find_if + { + typedef Iter type; + }; + + template + struct choose_find_if + { + typedef typename result_of::distance::type N; + typedef typename unrolled_find_if::type type; + }; + + template + struct static_find_if + { + typedef typename + choose_find_if< + First + , Last + , Pred + , traits::is_random_access::value + >::type + type; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + recursive_call(Iterator const& iter, mpl::true_) + { + return iter; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + recursive_call(Iterator const& iter, mpl::false_) + { + return recursive_call(fusion::next(iter)); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + recursive_call(Iterator const& iter) + { + typedef result_of::equal_to found; + return recursive_call(iter, found()); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename boost::disable_if, type>::type + iter_call(Iterator const& iter) + { + return recursive_call(iter); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename boost::enable_if, type>::type + iter_call(Iterator const& iter) + { + typedef typename result_of::distance::type N; + return fusion::advance(iter); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& seq) + { + return iter_call(fusion::begin(seq)); + } + }; + + template + struct result_of_find_if + { + typedef + static_find_if< + typename result_of::begin::type + , typename result_of::end::type + , Pred + > + filter; + + typedef typename filter::type type; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/algorithm/query/detail/segmented_find.hpp b/3rdparty/boost/boost/fusion/algorithm/query/detail/segmented_find.hpp new file mode 100644 index 0000000000..d8533afe10 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/query/detail/segmented_find.hpp @@ -0,0 +1,95 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_FIND_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_FIND_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct segmented_find_fun + { + template + struct apply + { + typedef + typename result_of::find::type + iterator_type; + + typedef + typename result_of::equal_to< + iterator_type + , typename result_of::end::type + >::type + continue_type; + + typedef + typename mpl::eval_if< + continue_type + , mpl::identity + , result_of::make_segmented_iterator< + iterator_type + , Context + > + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq, State const&state, Context const& context, segmented_find_fun) + { + return call_impl(seq, state, context, continue_type()); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call_impl(Sequence&, State const&state, Context const&, mpl::true_) + { + return state; + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call_impl(Sequence& seq, State const&, Context const& context, mpl::false_) + { + return fusion::make_segmented_iterator(fusion::find(seq), context); + } + }; + }; + + template + struct result_of_segmented_find + { + struct filter + { + typedef + typename result_of::segmented_fold_until< + Sequence + , typename result_of::end::type + , segmented_find_fun + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq) + { + return fusion::segmented_fold_until( + seq + , fusion::end(seq) + , detail::segmented_find_fun()); + } + }; + + typedef typename filter::type type; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/algorithm/query/find.hpp b/3rdparty/boost/boost/fusion/algorithm/query/find.hpp new file mode 100644 index 0000000000..41c22fb3d5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/query/find.hpp @@ -0,0 +1,72 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_FIND_05052005_1107) +#define FUSION_FIND_05052005_1107 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct find + : mpl::if_< + traits::is_segmented + , detail::result_of_segmented_find + , detail::result_of_find_if< + Sequence, + is_same< + typename mpl::if_< + traits::is_associative + , key_of + , value_of + >::type + , T + > + > + >::type + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_disable_if< + is_const + , result_of::find + >::type const + find(Sequence& seq) + { + typedef typename result_of::find::filter filter; + return filter::call(seq); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::find::type const + find(Sequence const& seq) + { + typedef typename result_of::find::filter filter; + return filter::call(seq); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/algorithm/query/find_fwd.hpp b/3rdparty/boost/boost/fusion/algorithm/query/find_fwd.hpp new file mode 100644 index 0000000000..c4fc0a9f1f --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/query/find_fwd.hpp @@ -0,0 +1,37 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_FIND_FWD_HPP_INCLUDED) +#define BOOST_FUSION_FIND_FWD_HPP_INCLUDED + +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct find; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_disable_if< + is_const + , result_of::find + >::type const + find(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::find::type const + find(Sequence const& seq); +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/algorithm/query/find_if_fwd.hpp b/3rdparty/boost/boost/fusion/algorithm/query/find_if_fwd.hpp new file mode 100644 index 0000000000..5c8abd5be9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/query/find_if_fwd.hpp @@ -0,0 +1,38 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_FIND_IF_FWD_HPP_INCLUDED) +#define BOOST_FUSION_FIND_IF_FWD_HPP_INCLUDED + +#include +#include +#include + +// Forward declaration of find_if algorithm +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct find_if; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_disable_if< + is_const + , result_of::find_if + >::type + find_if(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::find_if::type const + find_if(Sequence const& seq); +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/erase.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/erase.hpp new file mode 100644 index 0000000000..8eebc357bb --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/erase.hpp @@ -0,0 +1,140 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ERASE_07232005_0534) +#define FUSION_ERASE_07232005_0534 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct compute_erase_last // put this in detail!!! + { + typedef typename result_of::end::type seq_last_type; + typedef typename convert_iterator::type first_type; + typedef typename + mpl::if_< + result_of::equal_to + , first_type + , typename result_of::next::type + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const& first, mpl::false_) + { + return fusion::next(convert_iterator::call(first)); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const& first, mpl::true_) + { + return convert_iterator::call(first); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const& first) + { + return call(first, result_of::equal_to()); + } + }; + + struct use_default; + + template + struct fusion_default_help + : mpl::if_< + is_same + , Default + , T + > + { + }; + + template < + typename Sequence + , typename First + , typename Last = use_default> + struct erase + { + typedef typename result_of::begin::type seq_first_type; + typedef typename result_of::end::type seq_last_type; + BOOST_STATIC_ASSERT((!result_of::equal_to::value)); + + typedef First FirstType; + typedef typename + fusion_default_help< + Last + , typename compute_erase_last::type + >::type + LastType; + + typedef typename convert_iterator::type first_type; + typedef typename convert_iterator::type last_type; + typedef iterator_range left_type; + typedef iterator_range right_type; + typedef joint_view type; + }; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , typename result_of::erase + >::type + erase(Sequence const& seq, First const& first) + { + typedef result_of::erase result_of; + typedef typename result_of::left_type left_type; + typedef typename result_of::right_type right_type; + typedef typename result_of::type result_type; + + left_type left( + fusion::begin(seq) + , convert_iterator::call(first)); + right_type right( + fusion::result_of::compute_erase_last::call(first) + , fusion::end(seq)); + return result_type(left, right); + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::erase::type + erase(Sequence const& seq, First const& first, Last const& last) + { + typedef result_of::erase result_of; + typedef typename result_of::left_type left_type; + typedef typename result_of::right_type right_type; + typedef typename result_of::type result_type; + + left_type left(fusion::begin(seq), first); + right_type right(last, fusion::end(seq)); + return result_type(left, right); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/erase_key.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/erase_key.hpp new file mode 100644 index 0000000000..3757f46f8d --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/erase_key.hpp @@ -0,0 +1,36 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ERASE_KEY_10022005_1851) +#define FUSION_ERASE_KEY_10022005_1851 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct erase_key + : erase::type> + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::erase_key::type + erase_key(Sequence const& seq) + { + return erase(seq, find(seq)); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/insert.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/insert.hpp new file mode 100644 index 0000000000..c6d5219d69 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/insert.hpp @@ -0,0 +1,69 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_INSERT_07222005_0730) +#define FUSION_INSERT_07222005_0730 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct insert + { + typedef typename detail::as_fusion_element::type element_type; + typedef typename convert_iterator::type pos_type; + typedef typename result_of::begin::type first_type; + typedef typename result_of::end::type last_type; + + typedef iterator_range left_type; + typedef iterator_range right_type; + typedef fusion::single_view single_view; + typedef joint_view left_insert_type; + typedef joint_view type; + }; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::insert + >::type + insert(Sequence const& seq, Position const& pos, T const& x) + { + typedef result_of::insert< + Sequence const, Position, T> + result_of; + typedef typename result_of::left_type left_type; + typedef typename result_of::right_type right_type; + typedef typename result_of::single_view single_view; + typedef typename result_of::left_insert_type left_insert_type; + typedef typename result_of::type result; + + left_type left(fusion::begin(seq), convert_iterator::call(pos)); + right_type right(convert_iterator::call(pos), fusion::end(seq)); + single_view insert(x); + left_insert_type left_insert(left, insert); + return result(left_insert, right); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/insert_range.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/insert_range.hpp new file mode 100644 index 0000000000..57878309a1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/insert_range.hpp @@ -0,0 +1,56 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_INSERT_RANGE_009172005_1147) +#define FUSION_INSERT_RANGE_009172005_1147 + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct insert_range + { + typedef typename convert_iterator::type pos_type; + typedef typename result_of::begin::type first_type; + typedef typename result_of::end::type last_type; + + typedef iterator_range left_type; + typedef iterator_range right_type; + typedef joint_view left_insert_type; + typedef joint_view type; + }; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::insert_range::type + insert_range(Sequence const& seq, Position const& pos, Range const& range) + { + typedef result_of::insert_range result_of; + typedef typename result_of::left_type left_type; + typedef typename result_of::right_type right_type; + typedef typename result_of::left_insert_type left_insert_type; + typedef typename result_of::type result; + + left_type left(fusion::begin(seq), convert_iterator::call(pos)); + right_type right(convert_iterator::call(pos), fusion::end(seq)); + left_insert_type left_insert(left, range); + return result(left_insert, right); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/pop_back.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/pop_back.hpp new file mode 100644 index 0000000000..2f55fa5e72 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/pop_back.hpp @@ -0,0 +1,172 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_POP_BACK_09172005_1038) +#define FUSION_POP_BACK_09172005_1038 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct pop_back_iterator + : iterator_adapter< + pop_back_iterator + , Iterator_> + { + typedef iterator_adapter< + pop_back_iterator + , Iterator_> + base_type; + + static bool const is_last = IsLast; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + pop_back_iterator(Iterator_ const& iterator_base) + : base_type(iterator_base) {} + + template + struct make + { + typedef pop_back_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(BaseIterator const& i) + { + return type(i); + } + }; + + template + struct equal_to_helper + : mpl::identity + {}; + + template + struct equal_to_helper + : result_of::next< + typename I::iterator_base_type> + {}; + + template + struct equal_to + : result_of::equal_to< + typename equal_to_helper::type + , typename equal_to_helper::type + > + {}; + + template + struct distance + : mpl::minus< + typename result_of::distance< + typename First::iterator_base_type + , typename Last::iterator_base_type + >::type + , mpl::int_<(Last::is_last?1:0)> + >::type + {}; + + + template + struct prior_impl + { + typedef typename Iterator::iterator_base_type base_type; + + typedef typename + result_of::prior::type + base_prior; + + typedef pop_back_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(fusion::prior(i.iterator_base)); + } + }; + + template + struct prior_impl + { + // If this is the last iterator, we'll have to double back + typedef typename Iterator::iterator_base_type base_type; + + typedef typename + result_of::prior< + typename result_of::prior::type + >::type + base_prior; + + typedef pop_back_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(fusion::prior( + fusion::prior(i.iterator_base))); + } + }; + + template + struct prior : prior_impl + {}; + }; + + namespace result_of + { + template + struct pop_back + { + BOOST_MPL_ASSERT_NOT((result_of::empty)); + + typedef pop_back_iterator< + typename begin::type, false> + begin_type; + + typedef pop_back_iterator< + typename end::type, true> + end_type; + + typedef + iterator_range + type; + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::pop_back::type + pop_back(Sequence const& seq) + { + typedef result_of::pop_back comp; + typedef typename comp::begin_type begin_type; + typedef typename comp::end_type end_type; + typedef typename comp::type result; + + return result( + begin_type(fusion::begin(seq)) + , end_type(fusion::end(seq)) + ); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/pop_front.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/pop_front.hpp new file mode 100644 index 0000000000..11b7f6ee1b --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/pop_front.hpp @@ -0,0 +1,45 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_POP_FRONT_09172005_1115) +#define FUSION_POP_FRONT_09172005_1115 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct pop_front + { + typedef + iterator_range< + typename next< + typename begin::type + >::type + , typename end::type + > + type; + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::pop_front::type + pop_front(Sequence const& seq) + { + typedef typename result_of::pop_front::type result; + return result(fusion::next(fusion::begin(seq)), fusion::end(seq)); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/push_back.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/push_back.hpp new file mode 100644 index 0000000000..51c2569d23 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/push_back.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_PUSH_BACK_07162005_0235) +#define FUSION_PUSH_BACK_07162005_0235 + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct push_back + { + typedef fusion::single_view::type> single_view; + typedef joint_view type; + }; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::push_back + >::type + push_back(Sequence const& seq, T const& x) + { + typedef typename result_of::push_back push_back; + typedef typename push_back::single_view single_view; + typedef typename push_back::type result; + single_view x_(x); + return result(seq, x_); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/algorithm/transformation/push_front.hpp b/3rdparty/boost/boost/fusion/algorithm/transformation/push_front.hpp new file mode 100644 index 0000000000..a1b7b390c3 --- /dev/null +++ b/3rdparty/boost/boost/fusion/algorithm/transformation/push_front.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_PUSH_FRONT_07162005_0749) +#define FUSION_PUSH_FRONT_07162005_0749 + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct push_front + { + typedef fusion::single_view::type> single_view; + typedef joint_view type; + }; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::push_front + >::type + push_front(Sequence const& seq, T const& x) + { + typedef typename result_of::push_front push_front; + typedef typename push_front::single_view single_view; + typedef typename push_front::type result; + single_view x_(x); + return result(x_, seq); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/deque.hpp b/3rdparty/boost/boost/fusion/container/deque.hpp new file mode 100644 index 0000000000..c07de03048 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque.hpp @@ -0,0 +1,17 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036) +#define BOOST_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036 + +#include +#include +#include +#include + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/deque/back_extended_deque.hpp b/3rdparty/boost/boost/fusion/container/deque/back_extended_deque.hpp new file mode 100644 index 0000000000..04b1d41f26 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/back_extended_deque.hpp @@ -0,0 +1,53 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_BACK_EXTENDED_DEQUE_26112006_2209) +#define BOOST_FUSION_BACK_EXTENDED_DEQUE_26112006_2209 + +#include +#include +#include + +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct back_extended_deque + : detail::keyed_element + , sequence_base > + { + typedef detail::keyed_element base; + typedef typename Deque::next_down next_down; + typedef mpl::int_<(Deque::next_up::value + 1)> next_up; + typedef mpl::int_<(result_of::size::value + 1)> size; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + back_extended_deque(Deque const& deque, Arg const& val) + : base(val, deque) + {} + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + back_extended_deque(Deque const& deque, Arg& val) + : base(val, deque) + {} +#else + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + back_extended_deque(Deque const& deque, Arg&& val) + : base(BOOST_FUSION_FWD_ELEM(Arg, val), deque) + {} +#endif + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/convert.hpp b/3rdparty/boost/boost/fusion/container/deque/convert.hpp new file mode 100644 index 0000000000..9a4bf01af4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/convert.hpp @@ -0,0 +1,61 @@ +/*============================================================================= + Copyright (c) 2005-2013 Joel de Guzman + Copyright (c) 2006 Dan Marsden + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONVERT_20061213_2207) +#define FUSION_CONVERT_20061213_2207 + +#include +#include +#include + +#if !defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +/////////////////////////////////////////////////////////////////////////////// +// C++03 (non-variadic) implementation +/////////////////////////////////////////////////////////////////////////////// +#include + +#else +/////////////////////////////////////////////////////////////////////////////// +// C++11 variadic implementation +/////////////////////////////////////////////////////////////////////////////// +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct as_deque : + detail::build_deque< + typename result_of::begin::type + , typename result_of::end::type + > + { + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::as_deque::type + as_deque(Sequence& seq) + { + typedef result_of::as_deque gen; + return gen::call(fusion::begin(seq), fusion::end(seq)); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::as_deque::type + as_deque(Sequence const& seq) + { + typedef result_of::as_deque gen; + return gen::call(fusion::begin(seq), fusion::end(seq)); + } +}} + +#endif +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/deque.hpp b/3rdparty/boost/boost/fusion/container/deque/deque.hpp new file mode 100644 index 0000000000..a282a70129 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/deque.hpp @@ -0,0 +1,189 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_26112006_1649) +#define BOOST_FUSION_DEQUE_26112006_1649 + +# include + +/////////////////////////////////////////////////////////////////////////////// +// Without variadics, we will use the PP version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct deque_tag; + + template + struct deque : detail::nil_keyed_element + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef mpl::int_<0> size; + typedef mpl::int_<0> next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(Sequence const&, + typename enable_if< + mpl::and_< + traits::is_sequence + , result_of::empty>, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT + {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() BOOST_NOEXCEPT {} + }; + + template + struct deque + : detail::deque_keyed_values::type + , sequence_base> + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef typename detail::deque_keyed_values::type base; + typedef mpl::int_<(sizeof ...(Tail) + 1)> size; + typedef mpl::int_ next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() + {} + + template >::type + > + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + + template >::type + > + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(deque& seq) + : base(seq) + {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template >::type + > + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(deque&& seq) + : base(std::forward>(seq)) + {} +#endif + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(deque&& seq) + : base(std::forward(seq)) + {} +#endif + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(typename detail::call_param::type head + , typename detail::call_param::type... tail) + : base(detail::deque_keyed_values::construct(head, tail...)) + {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template >::type + > + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(Head_&& head, Tail_&&... tail) + : base(detail::deque_keyed_values + ::forward_(BOOST_FUSION_FWD_ELEM(Head_, head), BOOST_FUSION_FWD_ELEM(Tail_, tail)...)) + {} +#else + template >::type + > + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(Head_ const& head, Tail_ const&... tail) + : base(detail::deque_keyed_values::construct(head, tail...)) + {} +#endif + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(Sequence const& seq + , typename disable_if, detail::enabler_>::type = detail::enabler + , typename enable_if, detail::enabler_>::type = detail::enabler) + : base(base::from_iterator(fusion::begin(seq))) + {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& operator=(deque const& rhs) + { + base::operator=(rhs); + return *this; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& operator=(T const& rhs) + { + base::operator=(rhs); + return *this; + } + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& operator=(T&& rhs) + { + base::operator=(BOOST_FUSION_FWD_ELEM(T, rhs)); + return *this; + } +#endif + + }; +}} + +#endif +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/deque_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/deque_fwd.hpp new file mode 100644 index 0000000000..5b8ea56fc5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/deque_fwd.hpp @@ -0,0 +1,49 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2007 Dan Marsden + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DEQUE_FORWARD_02092007_0749) +#define FUSION_DEQUE_FORWARD_02092007_0749 + +#include +#include + +#if (defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \ + || defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS)) \ + || (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +# if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +# undef BOOST_FUSION_HAS_VARIADIC_DEQUE +# endif +#else +# if !defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +# define BOOST_FUSION_HAS_VARIADIC_DEQUE +# endif +#endif + +#if BOOST_WORKAROUND(BOOST_MSVC, < 1910) +# if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +# undef BOOST_FUSION_HAS_VARIADIC_DEQUE +# endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +// With no variadics, we will use the C++03 version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +namespace boost { namespace fusion +{ + template + struct deque; +}} + +#endif +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/deque_iterator.hpp b/3rdparty/boost/boost/fusion/container/deque/deque_iterator.hpp new file mode 100644 index 0000000000..b0335e5f2b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/deque_iterator.hpp @@ -0,0 +1,129 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_ITERATOR_26112006_2154) +#define BOOST_FUSION_DEQUE_ITERATOR_26112006_2154 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { + + struct bidirectional_traversal_tag; + + template + struct deque_iterator + : iterator_facade, bidirectional_traversal_tag> + { + typedef Seq sequence; + typedef mpl::int_ index; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque_iterator(Seq& seq) + : seq_(seq) + {} + + template + struct value_of + : detail::keyed_element_value_at< + typename Iterator::sequence, typename Iterator::index> + {}; + + template + struct deref + { + typedef typename detail::keyed_element_value_at< + typename Iterator::sequence, typename Iterator::index>::type element_type; + + typedef typename add_reference< + typename mpl::eval_if< + is_const, + add_const, + mpl::identity >::type>::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& it) + { + return it.seq_.get(typename Iterator::index()); + } + }; + + template + struct advance + { + typedef typename Iterator::index index; + typedef typename Iterator::sequence sequence; + typedef deque_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.seq_); + } + }; + + template + struct next + : advance > + {}; + + template + struct prior + : advance > + {}; + + template + struct distance : mpl::minus + { + typedef typename + mpl::minus< + typename I2::index, typename I1::index + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(I1 const&, I2 const&) + { + return type(); + } + }; + + template + struct equal_to + : mpl::equal_to + {}; + + Seq& seq_; + + // silence MSVC warning C4512: assignment operator could not be generated + BOOST_DELETED_FUNCTION(deque_iterator& operator= (deque_iterator const&)) + }; + +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::deque_iterator > + { }; +} +#endif + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/at_impl.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/at_impl.hpp new file mode 100644 index 0000000000..3edf48293c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/at_impl.hpp @@ -0,0 +1,67 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_AT_IMPL_09122006_2017) +#define BOOST_FUSION_DEQUE_AT_IMPL_09122006_2017 + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct deque_tag; + + namespace extension + { + template + struct at_impl; + + template<> + struct at_impl + { + template + struct apply + { + typedef typename Sequence::next_up next_up; + typedef typename Sequence::next_down next_down; + BOOST_MPL_ASSERT_RELATION(next_down::value, !=, next_up::value); + + static int const offset = next_down::value + 1; + typedef mpl::int_<(N::value + offset)> adjusted_index; + typedef typename + detail::keyed_element_value_at::type + element_type; + + typedef typename + add_reference< + typename mpl::eval_if< + is_const, + add_const, + mpl::identity >::type + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq) + { + return seq.get(adjusted_index()); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/begin_impl.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/begin_impl.hpp new file mode 100644 index 0000000000..27b4f41b99 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/begin_impl.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_BEGIN_IMPL_09122006_2034) +#define BOOST_FUSION_DEQUE_BEGIN_IMPL_09122006_2034 + +#include +#include + +namespace boost { namespace fusion +{ + struct deque_tag; + + namespace extension + { + template + struct begin_impl; + + template<> + struct begin_impl + { + template + struct apply + { + typedef + deque_iterator + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq) + { + return type(seq); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/build_deque.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/build_deque.hpp new file mode 100644 index 0000000000..4dd990aea6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/build_deque.hpp @@ -0,0 +1,78 @@ +/*============================================================================= + Copyright (c) 2005-2013 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_BUILD_DEQUE_02032013_1921) +#define BOOST_FUSION_BUILD_DEQUE_02032013_1921 + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template ::value> + struct build_deque; + + template + struct build_deque + { + typedef deque<> type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const&, Last const&) + { + return type(); + } + }; + + template + struct push_front_deque; + + template + struct push_front_deque> + { + typedef deque type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(T const& first, deque const& rest) + { + return type(front_extended_deque, T>(rest, first)); + } + }; + + template + struct build_deque + { + typedef + build_deque::type, Last> + next_build_deque; + + typedef push_front_deque< + typename result_of::value_of::type + , typename next_build_deque::type> + push_front; + + typedef typename push_front::type type; + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const& f, Last const& l) + { + typename result_of::value_of::type v = *f; + return push_front::call( + v, next_build_deque::call(fusion::next(f), l)); + } + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/convert_impl.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/convert_impl.hpp new file mode 100644 index 0000000000..ede0cc48fe --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/convert_impl.hpp @@ -0,0 +1,56 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + Copyright (c) 2015 Kohei Takahashi + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONVERT_IMPL_20061213_2207) +#define FUSION_CONVERT_IMPL_20061213_2207 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct deque_tag; + + namespace result_of + { + template + struct as_deque; + } + + namespace extension + { + template + struct convert_impl; + + template <> + struct convert_impl + { + template + struct apply + { + typedef result_of::as_deque gen; + typedef typename gen::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq) + { + return gen::call(fusion::begin(seq) +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) + , fusion::end(seq) +#endif + ); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/as_deque.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/as_deque.hpp new file mode 100644 index 0000000000..860a2a2936 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/as_deque.hpp @@ -0,0 +1,146 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2006 Dan Marsden + + Distributed under the 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_PP_IS_ITERATING +#if !defined(FUSION_AS_DEQUE_20061213_2210) +#define FUSION_AS_DEQUE_20061213_2210 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ +BOOST_FUSION_BARRIER_BEGIN + + template + struct as_deque + { + BOOST_STATIC_ASSERT_MSG( + size <= FUSION_MAX_DEQUE_SIZE + , "FUSION_MAX_DEQUE_SIZE limit is too low" + ); + }; + + template <> + struct as_deque<0> + { + template + struct apply + { + typedef deque<> type; + }; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator) + { + return deque<>(); + } + }; + +BOOST_FUSION_BARRIER_END +}}} + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_deque" FUSION_MAX_DEQUE_SIZE_STR ".hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion { namespace detail +{ +BOOST_FUSION_BARRIER_BEGIN + +#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \ + typedef typename fusion::result_of::next::type \ + BOOST_PP_CAT(I, BOOST_PP_INC(n)); + +#define BOOST_FUSION_NEXT_CALL_ITERATOR(z, n, data) \ + typename gen::BOOST_PP_CAT(I, BOOST_PP_INC(n)) \ + BOOST_PP_CAT(i, BOOST_PP_INC(n)) = fusion::next(BOOST_PP_CAT(i, n)); + +#define BOOST_FUSION_VALUE_OF_ITERATOR(z, n, data) \ + typedef typename fusion::result_of::value_of::type \ + BOOST_PP_CAT(T, n); + +#define BOOST_PP_FILENAME_1 +#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_DEQUE_SIZE) +#include BOOST_PP_ITERATE() + +#undef BOOST_FUSION_NEXT_ITERATOR +#undef BOOST_FUSION_NEXT_CALL_ITERATOR +#undef BOOST_FUSION_VALUE_OF_ITERATOR + +BOOST_FUSION_BARRIER_END +}}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif +#else // defined(BOOST_PP_IS_ITERATING) +/////////////////////////////////////////////////////////////////////////////// +// +// Preprocessor vertical repetition code +// +/////////////////////////////////////////////////////////////////////////////// + +#define N BOOST_PP_ITERATION() + + template <> + struct as_deque + { + template + struct apply + { + BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _) + BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _) + typedef deque type; + }; + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _) + return result(BOOST_PP_ENUM_PARAMS(N, *i)); + } + }; + +#undef N +#endif // defined(BOOST_PP_IS_ITERATING) + diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/build_deque.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/build_deque.hpp new file mode 100644 index 0000000000..587aa3b06c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/build_deque.hpp @@ -0,0 +1,55 @@ +/*============================================================================= + Copyright (c) 2005-2013 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_BUILD_DEQUE_02032013_1921) +#define BOOST_FUSION_BUILD_DEQUE_02032013_1921 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct as_deque + : detail::as_deque::value> + { + typedef typename + detail::as_deque::value> + gen; + typedef typename gen:: + template apply::type>::type + type; + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::as_deque::type + as_deque(Sequence& seq) + { + typedef typename result_of::as_deque::gen gen; + return gen::call(fusion::begin(seq)); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::as_deque::type + as_deque(Sequence const& seq) + { + typedef typename result_of::as_deque::gen gen; + return gen::call(fusion::begin(seq)); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque.hpp new file mode 100644 index 0000000000..9a130ecbd5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque.hpp @@ -0,0 +1,207 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_26112006_1649) +#define BOOST_PP_FUSION_DEQUE_26112006_1649 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/deque" FUSION_MAX_DEQUE_SIZE_STR ".hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +#define FUSION_HASH # + +namespace boost { namespace fusion { + + struct deque_tag; + + template + struct deque + : + detail::deque_keyed_values::type, + sequence_base > + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef typename detail::deque_keyed_values::type base; + typedef typename detail::deque_initial_size::type size; + typedef mpl::int_ next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + +#include + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() + {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(typename detail::call_param::type t0) + : base(t0, detail::nil_keyed_element()) + {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque const& rhs) + : base(rhs) + {} + + template + BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + + template + BOOST_FUSION_GPU_ENABLED + deque(Sequence const& seq + , typename disable_if, detail::enabler_>::type = detail::enabler + , typename enable_if, detail::enabler_>::type = detail::enabler) + : base(base::from_iterator(fusion::begin(seq))) + {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T const& rhs) + { + base::operator=(rhs); + return *this; + } + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#endif +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ + (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) + template + BOOST_FUSION_GPU_ENABLED + explicit deque(T0_&& t0 + , typename enable_if, detail::enabler_>::type = detail::enabler + , typename disable_if_c< + boost::is_same::type const>::value + , detail::enabler_ + >::type = detail::enabler + ) + : base(BOOST_FUSION_FWD_ELEM(T0_, t0), detail::nil_keyed_element()) + {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque&& rhs) + : base(std::forward(rhs)) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque&& seq + , typename disable_if< + is_convertible, T0> + , detail::enabler_ + >::type = detail::enabler) + : base(std::forward>(seq)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T&& rhs) + { + base::operator=(BOOST_FUSION_FWD_ELEM(T, rhs)); + return *this; + } + // This copy op= is required because move ctor deletes copy op=. + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(deque const& rhs) + { + base::operator=(static_cast(rhs)); + return *this; + } +#endif +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH endif +#endif + + }; + + template <> + struct deque<> : detail::nil_keyed_element + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef mpl::int_<0> size; + typedef mpl::int_<0> next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(Sequence const&, + typename enable_if< + mpl::and_< + traits::is_sequence + , result_of::empty >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT + {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() BOOST_NOEXCEPT {} + }; + +}} + +#undef FUSION_HASH + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp new file mode 100644 index 0000000000..eeaa29ffb2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp @@ -0,0 +1,69 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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) +#if !defined(BOOST_FUSION_SEQUENCE_DEQUE_DETAIL_DEQUE_FORWARD_CTOR_04122006_2212) +#define BOOST_FUSION_SEQUENCE_DEQUE_DETAIL_DEQUE_FORWARD_CTOR_04122006_2212 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#define FUSION_DEQUE_FORWARD_CTOR_FORWARD(z, n, _) BOOST_FUSION_FWD_ELEM(T_##n, t##n) + +#include +#include +#include + +#define BOOST_PP_FILENAME_1 \ + +#define BOOST_PP_ITERATION_LIMITS (2, FUSION_MAX_DEQUE_SIZE) +#include BOOST_PP_ITERATE() + +#undef FUSION_DEQUE_FORWARD_CTOR_FORWARD +#endif +#else + +#define N BOOST_PP_ITERATION() + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#endif +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ + (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(BOOST_PP_ENUM_BINARY_PARAMS(N, typename detail::call_param::type t)) + : base(detail::deque_keyed_values::construct(BOOST_PP_ENUM_PARAMS(N, t))) +{} +#endif +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH endif +#endif + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#endif +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ + (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& t)) + : base(detail::deque_keyed_values::construct(BOOST_PP_ENUM_PARAMS(N, t))) +{} + +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(BOOST_PP_ENUM_BINARY_PARAMS(N, T_, && t)) + : base(detail::deque_keyed_values:: + forward_(BOOST_PP_ENUM(N, FUSION_DEQUE_FORWARD_CTOR_FORWARD, _))) +{} +#endif +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH endif +#endif + +#undef N +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_fwd.hpp new file mode 100644 index 0000000000..0da8bd2243 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_fwd.hpp @@ -0,0 +1,54 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2007 Dan Marsden + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_PP_DEQUE_FORWARD_02092007_0749) +#define FUSION_PP_DEQUE_FORWARD_02092007_0749 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/deque" FUSION_MAX_DEQUE_SIZE_STR "_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct void_; + + template< + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( + FUSION_MAX_DEQUE_SIZE, typename T, void_)> + struct deque; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp new file mode 100644 index 0000000000..5ac245d956 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp @@ -0,0 +1,64 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_DETAIL_DEQUE_INITIAL_SIZE_26112006_2139) +#define BOOST_FUSION_DEQUE_DETAIL_DEQUE_INITIAL_SIZE_26112006_2139 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct void_; +}} + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/deque_initial_size" FUSION_MAX_DEQUE_SIZE_STR ".hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion { namespace detail +{ + template + struct deque_initial_size + { + typedef mpl::vector args; + typedef typename mpl::find::type first_void; + typedef typename mpl::distance::type, first_void>::type type; + }; +}}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp new file mode 100644 index 0000000000..fcbd74a7e9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp @@ -0,0 +1,112 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_DETAIL_DEQUE_KEYED_VALUES_26112006_1330) +#define BOOST_FUSION_DEQUE_DETAIL_DEQUE_KEYED_VALUES_26112006_1330 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#define FUSION_VOID(z, n, _) void_ + +namespace boost { namespace fusion +{ + struct void_; +}} + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/deque_keyed_values" FUSION_MAX_DEQUE_SIZE_STR ".hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + + struct nil_keyed_element; + + template + struct deque_keyed_values_impl; + + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct() + { + return type(); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_() + { + return type(); + } + }; + + template + struct deque_keyed_values_impl + { + typedef mpl::int_ >::value> next_index; + + typedef typename deque_keyed_values_impl< + next_index, + BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type tail; + typedef keyed_element type; + +#include + + }; + + template + struct deque_keyed_values + : deque_keyed_values_impl, BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)> + {}; + +}}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#undef FUSION_VOID + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp new file mode 100644 index 0000000000..87f3714b50 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp @@ -0,0 +1,72 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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) +#if !defined(BOOST_FUSION_SEQUENCE_DEQUE_DETAIL_DEQUE_KEYED_VALUES_CALL_04122006_2211) +#define BOOST_FUSION_SEQUENCE_DEQUE_DETAIL_DEQUE_KEYED_VALUES_CALL_04122006_2211 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#include +#include +#include +#include + +#define FUSION_HASH # +#define FUSION_DEQUE_KEYED_VALUES_FORWARD(z, n, _) \ + BOOST_FUSION_FWD_ELEM(BOOST_PP_CAT(T_, n), BOOST_PP_CAT(t, n)) + +#define BOOST_PP_FILENAME_1 \ + +#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_DEQUE_SIZE) +#include BOOST_PP_ITERATE() + +#undef FUSION_DEQUE_KEYED_VALUES_FORWARD +#undef FUSION_HASH +#endif +#else + +#define N BOOST_PP_ITERATION() + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(BOOST_PP_ENUM_BINARY_PARAMS(N, typename detail::call_param::type t)) + { + return type(t0, + deque_keyed_values_impl< + next_index + #if N > 1 + , BOOST_PP_ENUM_SHIFTED_PARAMS(N, T) + #endif + >::construct(BOOST_PP_ENUM_SHIFTED_PARAMS(N, t))); + } + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#endif +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ + (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(BOOST_PP_ENUM_BINARY_PARAMS(N, T_, && t)) + { + return type(BOOST_FUSION_FWD_ELEM(T_0, t0), + deque_keyed_values_impl< + next_index + #if N > 1 + , BOOST_PP_ENUM_SHIFTED_PARAMS(N, T_) + #endif + >::forward_(BOOST_PP_ENUM_SHIFTED(N, FUSION_DEQUE_KEYED_VALUES_FORWARD, _))); + } +#endif +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH endif +#endif + +#undef N +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/limits.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/limits.hpp new file mode 100644 index 0000000000..16e25fa081 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/limits.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_LIMITS_26112006_1737) +#define BOOST_FUSION_DEQUE_LIMITS_26112006_1737 + +#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) +#error "C++03 only! This file should not have been included" +#endif + +#include + +#if !defined(FUSION_MAX_DEQUE_SIZE) +# define FUSION_MAX_DEQUE_SIZE FUSION_MAX_VECTOR_SIZE +#else +# if FUSION_MAX_DEQUE_SIZE < 3 +# undef FUSION_MAX_DEQUE_SIZE +# if (FUSION_MAX_VECTOR_SIZE > 10) +# define FUSION_MAX_DEQUE_SIZE 10 +# else +# define FUSION_MAX_DEQUE_SIZE FUSION_MAX_VECTOR_SIZE +# endif +# endif +#endif + +#define FUSION_MAX_DEQUE_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_DEQUE_SIZE)) + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque.hpp new file mode 100644 index 0000000000..abc2890a22 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_DEQUE_SIZE <= 10 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 20 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 30 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 40 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 50 +#include +#else +#error "FUSION_MAX_DEQUE_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp new file mode 100644 index 0000000000..3faf4be223 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp @@ -0,0 +1,223 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ +BOOST_FUSION_BARRIER_BEGIN + template <> + struct as_deque<1> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; + typedef typename fusion::result_of::value_of::type T0; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + + return result(*i0); + } + }; + template <> + struct as_deque<2> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); + return result(*i0 , *i1); + } + }; + template <> + struct as_deque<3> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); + return result(*i0 , *i1 , *i2); + } + }; + template <> + struct as_deque<4> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); + return result(*i0 , *i1 , *i2 , *i3); + } + }; + template <> + struct as_deque<5> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); + return result(*i0 , *i1 , *i2 , *i3 , *i4); + } + }; + template <> + struct as_deque<6> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + }; + template <> + struct as_deque<7> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + }; + template <> + struct as_deque<8> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + }; + template <> + struct as_deque<9> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + }; + template <> + struct as_deque<10> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + }; +BOOST_FUSION_BARRIER_END +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp new file mode 100644 index 0000000000..81faaa0f36 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp @@ -0,0 +1,433 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ +BOOST_FUSION_BARRIER_BEGIN + template <> + struct as_deque<1> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; + typedef typename fusion::result_of::value_of::type T0; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + + return result(*i0); + } + }; + template <> + struct as_deque<2> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); + return result(*i0 , *i1); + } + }; + template <> + struct as_deque<3> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); + return result(*i0 , *i1 , *i2); + } + }; + template <> + struct as_deque<4> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); + return result(*i0 , *i1 , *i2 , *i3); + } + }; + template <> + struct as_deque<5> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); + return result(*i0 , *i1 , *i2 , *i3 , *i4); + } + }; + template <> + struct as_deque<6> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + }; + template <> + struct as_deque<7> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + }; + template <> + struct as_deque<8> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + }; + template <> + struct as_deque<9> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + }; + template <> + struct as_deque<10> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + }; + template <> + struct as_deque<11> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10); + } + }; + template <> + struct as_deque<12> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11); + } + }; + template <> + struct as_deque<13> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12); + } + }; + template <> + struct as_deque<14> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13); + } + }; + template <> + struct as_deque<15> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14); + } + }; + template <> + struct as_deque<16> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15); + } + }; + template <> + struct as_deque<17> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16); + } + }; + template <> + struct as_deque<18> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17); + } + }; + template <> + struct as_deque<19> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18); + } + }; + template <> + struct as_deque<20> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19); + } + }; +BOOST_FUSION_BARRIER_END +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp new file mode 100644 index 0000000000..ce2b7b0ae1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp @@ -0,0 +1,643 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ +BOOST_FUSION_BARRIER_BEGIN + template <> + struct as_deque<1> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; + typedef typename fusion::result_of::value_of::type T0; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + + return result(*i0); + } + }; + template <> + struct as_deque<2> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); + return result(*i0 , *i1); + } + }; + template <> + struct as_deque<3> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); + return result(*i0 , *i1 , *i2); + } + }; + template <> + struct as_deque<4> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); + return result(*i0 , *i1 , *i2 , *i3); + } + }; + template <> + struct as_deque<5> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); + return result(*i0 , *i1 , *i2 , *i3 , *i4); + } + }; + template <> + struct as_deque<6> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + }; + template <> + struct as_deque<7> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + }; + template <> + struct as_deque<8> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + }; + template <> + struct as_deque<9> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + }; + template <> + struct as_deque<10> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + }; + template <> + struct as_deque<11> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10); + } + }; + template <> + struct as_deque<12> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11); + } + }; + template <> + struct as_deque<13> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12); + } + }; + template <> + struct as_deque<14> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13); + } + }; + template <> + struct as_deque<15> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14); + } + }; + template <> + struct as_deque<16> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15); + } + }; + template <> + struct as_deque<17> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16); + } + }; + template <> + struct as_deque<18> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17); + } + }; + template <> + struct as_deque<19> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18); + } + }; + template <> + struct as_deque<20> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19); + } + }; + template <> + struct as_deque<21> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20); + } + }; + template <> + struct as_deque<22> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21); + } + }; + template <> + struct as_deque<23> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22); + } + }; + template <> + struct as_deque<24> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23); + } + }; + template <> + struct as_deque<25> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24); + } + }; + template <> + struct as_deque<26> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25); + } + }; + template <> + struct as_deque<27> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26); + } + }; + template <> + struct as_deque<28> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27); + } + }; + template <> + struct as_deque<29> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28); + } + }; + template <> + struct as_deque<30> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29); + } + }; +BOOST_FUSION_BARRIER_END +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp new file mode 100644 index 0000000000..41a5cd0796 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp @@ -0,0 +1,853 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ +BOOST_FUSION_BARRIER_BEGIN + template <> + struct as_deque<1> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; + typedef typename fusion::result_of::value_of::type T0; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + + return result(*i0); + } + }; + template <> + struct as_deque<2> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); + return result(*i0 , *i1); + } + }; + template <> + struct as_deque<3> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); + return result(*i0 , *i1 , *i2); + } + }; + template <> + struct as_deque<4> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); + return result(*i0 , *i1 , *i2 , *i3); + } + }; + template <> + struct as_deque<5> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); + return result(*i0 , *i1 , *i2 , *i3 , *i4); + } + }; + template <> + struct as_deque<6> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + }; + template <> + struct as_deque<7> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + }; + template <> + struct as_deque<8> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + }; + template <> + struct as_deque<9> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + }; + template <> + struct as_deque<10> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + }; + template <> + struct as_deque<11> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10); + } + }; + template <> + struct as_deque<12> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11); + } + }; + template <> + struct as_deque<13> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12); + } + }; + template <> + struct as_deque<14> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13); + } + }; + template <> + struct as_deque<15> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14); + } + }; + template <> + struct as_deque<16> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15); + } + }; + template <> + struct as_deque<17> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16); + } + }; + template <> + struct as_deque<18> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17); + } + }; + template <> + struct as_deque<19> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18); + } + }; + template <> + struct as_deque<20> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19); + } + }; + template <> + struct as_deque<21> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20); + } + }; + template <> + struct as_deque<22> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21); + } + }; + template <> + struct as_deque<23> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22); + } + }; + template <> + struct as_deque<24> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23); + } + }; + template <> + struct as_deque<25> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24); + } + }; + template <> + struct as_deque<26> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25); + } + }; + template <> + struct as_deque<27> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26); + } + }; + template <> + struct as_deque<28> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27); + } + }; + template <> + struct as_deque<29> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28); + } + }; + template <> + struct as_deque<30> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29); + } + }; + template <> + struct as_deque<31> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30); + } + }; + template <> + struct as_deque<32> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31); + } + }; + template <> + struct as_deque<33> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32); + } + }; + template <> + struct as_deque<34> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33); + } + }; + template <> + struct as_deque<35> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34); + } + }; + template <> + struct as_deque<36> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35); + } + }; + template <> + struct as_deque<37> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36); + } + }; + template <> + struct as_deque<38> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37); + } + }; + template <> + struct as_deque<39> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38); + } + }; + template <> + struct as_deque<40> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39); + } + }; +BOOST_FUSION_BARRIER_END +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp new file mode 100644 index 0000000000..d93ba945d3 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp @@ -0,0 +1,1063 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ +BOOST_FUSION_BARRIER_BEGIN + template <> + struct as_deque<1> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; + typedef typename fusion::result_of::value_of::type T0; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + + return result(*i0); + } + }; + template <> + struct as_deque<2> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); + return result(*i0 , *i1); + } + }; + template <> + struct as_deque<3> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); + return result(*i0 , *i1 , *i2); + } + }; + template <> + struct as_deque<4> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); + return result(*i0 , *i1 , *i2 , *i3); + } + }; + template <> + struct as_deque<5> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); + return result(*i0 , *i1 , *i2 , *i3 , *i4); + } + }; + template <> + struct as_deque<6> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + }; + template <> + struct as_deque<7> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + }; + template <> + struct as_deque<8> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + }; + template <> + struct as_deque<9> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + }; + template <> + struct as_deque<10> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + }; + template <> + struct as_deque<11> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10); + } + }; + template <> + struct as_deque<12> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11); + } + }; + template <> + struct as_deque<13> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12); + } + }; + template <> + struct as_deque<14> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13); + } + }; + template <> + struct as_deque<15> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14); + } + }; + template <> + struct as_deque<16> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15); + } + }; + template <> + struct as_deque<17> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16); + } + }; + template <> + struct as_deque<18> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17); + } + }; + template <> + struct as_deque<19> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18); + } + }; + template <> + struct as_deque<20> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19); + } + }; + template <> + struct as_deque<21> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20); + } + }; + template <> + struct as_deque<22> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21); + } + }; + template <> + struct as_deque<23> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22); + } + }; + template <> + struct as_deque<24> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23); + } + }; + template <> + struct as_deque<25> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24); + } + }; + template <> + struct as_deque<26> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25); + } + }; + template <> + struct as_deque<27> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26); + } + }; + template <> + struct as_deque<28> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27); + } + }; + template <> + struct as_deque<29> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28); + } + }; + template <> + struct as_deque<30> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29); + } + }; + template <> + struct as_deque<31> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30); + } + }; + template <> + struct as_deque<32> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31); + } + }; + template <> + struct as_deque<33> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32); + } + }; + template <> + struct as_deque<34> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33); + } + }; + template <> + struct as_deque<35> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34); + } + }; + template <> + struct as_deque<36> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35); + } + }; + template <> + struct as_deque<37> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36); + } + }; + template <> + struct as_deque<38> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37); + } + }; + template <> + struct as_deque<39> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38); + } + }; + template <> + struct as_deque<40> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39); + } + }; + template <> + struct as_deque<41> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40); + } + }; + template <> + struct as_deque<42> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41); + } + }; + template <> + struct as_deque<43> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42); + } + }; + template <> + struct as_deque<44> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; typedef typename fusion::result_of::next::type I44; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; typedef typename fusion::result_of::value_of::type T43; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); typename gen::I43 i43 = fusion::next(i42); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43); + } + }; + template <> + struct as_deque<45> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; typedef typename fusion::result_of::next::type I44; typedef typename fusion::result_of::next::type I45; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; typedef typename fusion::result_of::value_of::type T43; typedef typename fusion::result_of::value_of::type T44; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); typename gen::I43 i43 = fusion::next(i42); typename gen::I44 i44 = fusion::next(i43); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44); + } + }; + template <> + struct as_deque<46> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; typedef typename fusion::result_of::next::type I44; typedef typename fusion::result_of::next::type I45; typedef typename fusion::result_of::next::type I46; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; typedef typename fusion::result_of::value_of::type T43; typedef typename fusion::result_of::value_of::type T44; typedef typename fusion::result_of::value_of::type T45; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); typename gen::I43 i43 = fusion::next(i42); typename gen::I44 i44 = fusion::next(i43); typename gen::I45 i45 = fusion::next(i44); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45); + } + }; + template <> + struct as_deque<47> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; typedef typename fusion::result_of::next::type I44; typedef typename fusion::result_of::next::type I45; typedef typename fusion::result_of::next::type I46; typedef typename fusion::result_of::next::type I47; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; typedef typename fusion::result_of::value_of::type T43; typedef typename fusion::result_of::value_of::type T44; typedef typename fusion::result_of::value_of::type T45; typedef typename fusion::result_of::value_of::type T46; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); typename gen::I43 i43 = fusion::next(i42); typename gen::I44 i44 = fusion::next(i43); typename gen::I45 i45 = fusion::next(i44); typename gen::I46 i46 = fusion::next(i45); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46); + } + }; + template <> + struct as_deque<48> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; typedef typename fusion::result_of::next::type I44; typedef typename fusion::result_of::next::type I45; typedef typename fusion::result_of::next::type I46; typedef typename fusion::result_of::next::type I47; typedef typename fusion::result_of::next::type I48; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; typedef typename fusion::result_of::value_of::type T43; typedef typename fusion::result_of::value_of::type T44; typedef typename fusion::result_of::value_of::type T45; typedef typename fusion::result_of::value_of::type T46; typedef typename fusion::result_of::value_of::type T47; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); typename gen::I43 i43 = fusion::next(i42); typename gen::I44 i44 = fusion::next(i43); typename gen::I45 i45 = fusion::next(i44); typename gen::I46 i46 = fusion::next(i45); typename gen::I47 i47 = fusion::next(i46); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47); + } + }; + template <> + struct as_deque<49> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; typedef typename fusion::result_of::next::type I44; typedef typename fusion::result_of::next::type I45; typedef typename fusion::result_of::next::type I46; typedef typename fusion::result_of::next::type I47; typedef typename fusion::result_of::next::type I48; typedef typename fusion::result_of::next::type I49; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; typedef typename fusion::result_of::value_of::type T43; typedef typename fusion::result_of::value_of::type T44; typedef typename fusion::result_of::value_of::type T45; typedef typename fusion::result_of::value_of::type T46; typedef typename fusion::result_of::value_of::type T47; typedef typename fusion::result_of::value_of::type T48; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); typename gen::I43 i43 = fusion::next(i42); typename gen::I44 i44 = fusion::next(i43); typename gen::I45 i45 = fusion::next(i44); typename gen::I46 i46 = fusion::next(i45); typename gen::I47 i47 = fusion::next(i46); typename gen::I48 i48 = fusion::next(i47); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48); + } + }; + template <> + struct as_deque<50> + { + template + struct apply + { + typedef typename fusion::result_of::next::type I1; typedef typename fusion::result_of::next::type I2; typedef typename fusion::result_of::next::type I3; typedef typename fusion::result_of::next::type I4; typedef typename fusion::result_of::next::type I5; typedef typename fusion::result_of::next::type I6; typedef typename fusion::result_of::next::type I7; typedef typename fusion::result_of::next::type I8; typedef typename fusion::result_of::next::type I9; typedef typename fusion::result_of::next::type I10; typedef typename fusion::result_of::next::type I11; typedef typename fusion::result_of::next::type I12; typedef typename fusion::result_of::next::type I13; typedef typename fusion::result_of::next::type I14; typedef typename fusion::result_of::next::type I15; typedef typename fusion::result_of::next::type I16; typedef typename fusion::result_of::next::type I17; typedef typename fusion::result_of::next::type I18; typedef typename fusion::result_of::next::type I19; typedef typename fusion::result_of::next::type I20; typedef typename fusion::result_of::next::type I21; typedef typename fusion::result_of::next::type I22; typedef typename fusion::result_of::next::type I23; typedef typename fusion::result_of::next::type I24; typedef typename fusion::result_of::next::type I25; typedef typename fusion::result_of::next::type I26; typedef typename fusion::result_of::next::type I27; typedef typename fusion::result_of::next::type I28; typedef typename fusion::result_of::next::type I29; typedef typename fusion::result_of::next::type I30; typedef typename fusion::result_of::next::type I31; typedef typename fusion::result_of::next::type I32; typedef typename fusion::result_of::next::type I33; typedef typename fusion::result_of::next::type I34; typedef typename fusion::result_of::next::type I35; typedef typename fusion::result_of::next::type I36; typedef typename fusion::result_of::next::type I37; typedef typename fusion::result_of::next::type I38; typedef typename fusion::result_of::next::type I39; typedef typename fusion::result_of::next::type I40; typedef typename fusion::result_of::next::type I41; typedef typename fusion::result_of::next::type I42; typedef typename fusion::result_of::next::type I43; typedef typename fusion::result_of::next::type I44; typedef typename fusion::result_of::next::type I45; typedef typename fusion::result_of::next::type I46; typedef typename fusion::result_of::next::type I47; typedef typename fusion::result_of::next::type I48; typedef typename fusion::result_of::next::type I49; typedef typename fusion::result_of::next::type I50; + typedef typename fusion::result_of::value_of::type T0; typedef typename fusion::result_of::value_of::type T1; typedef typename fusion::result_of::value_of::type T2; typedef typename fusion::result_of::value_of::type T3; typedef typename fusion::result_of::value_of::type T4; typedef typename fusion::result_of::value_of::type T5; typedef typename fusion::result_of::value_of::type T6; typedef typename fusion::result_of::value_of::type T7; typedef typename fusion::result_of::value_of::type T8; typedef typename fusion::result_of::value_of::type T9; typedef typename fusion::result_of::value_of::type T10; typedef typename fusion::result_of::value_of::type T11; typedef typename fusion::result_of::value_of::type T12; typedef typename fusion::result_of::value_of::type T13; typedef typename fusion::result_of::value_of::type T14; typedef typename fusion::result_of::value_of::type T15; typedef typename fusion::result_of::value_of::type T16; typedef typename fusion::result_of::value_of::type T17; typedef typename fusion::result_of::value_of::type T18; typedef typename fusion::result_of::value_of::type T19; typedef typename fusion::result_of::value_of::type T20; typedef typename fusion::result_of::value_of::type T21; typedef typename fusion::result_of::value_of::type T22; typedef typename fusion::result_of::value_of::type T23; typedef typename fusion::result_of::value_of::type T24; typedef typename fusion::result_of::value_of::type T25; typedef typename fusion::result_of::value_of::type T26; typedef typename fusion::result_of::value_of::type T27; typedef typename fusion::result_of::value_of::type T28; typedef typename fusion::result_of::value_of::type T29; typedef typename fusion::result_of::value_of::type T30; typedef typename fusion::result_of::value_of::type T31; typedef typename fusion::result_of::value_of::type T32; typedef typename fusion::result_of::value_of::type T33; typedef typename fusion::result_of::value_of::type T34; typedef typename fusion::result_of::value_of::type T35; typedef typename fusion::result_of::value_of::type T36; typedef typename fusion::result_of::value_of::type T37; typedef typename fusion::result_of::value_of::type T38; typedef typename fusion::result_of::value_of::type T39; typedef typename fusion::result_of::value_of::type T40; typedef typename fusion::result_of::value_of::type T41; typedef typename fusion::result_of::value_of::type T42; typedef typename fusion::result_of::value_of::type T43; typedef typename fusion::result_of::value_of::type T44; typedef typename fusion::result_of::value_of::type T45; typedef typename fusion::result_of::value_of::type T46; typedef typename fusion::result_of::value_of::type T47; typedef typename fusion::result_of::value_of::type T48; typedef typename fusion::result_of::value_of::type T49; + typedef deque type; + }; + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename apply::type + call(Iterator const& i0) + { + typedef apply gen; + typedef typename gen::type result; + typename gen::I1 i1 = fusion::next(i0); typename gen::I2 i2 = fusion::next(i1); typename gen::I3 i3 = fusion::next(i2); typename gen::I4 i4 = fusion::next(i3); typename gen::I5 i5 = fusion::next(i4); typename gen::I6 i6 = fusion::next(i5); typename gen::I7 i7 = fusion::next(i6); typename gen::I8 i8 = fusion::next(i7); typename gen::I9 i9 = fusion::next(i8); typename gen::I10 i10 = fusion::next(i9); typename gen::I11 i11 = fusion::next(i10); typename gen::I12 i12 = fusion::next(i11); typename gen::I13 i13 = fusion::next(i12); typename gen::I14 i14 = fusion::next(i13); typename gen::I15 i15 = fusion::next(i14); typename gen::I16 i16 = fusion::next(i15); typename gen::I17 i17 = fusion::next(i16); typename gen::I18 i18 = fusion::next(i17); typename gen::I19 i19 = fusion::next(i18); typename gen::I20 i20 = fusion::next(i19); typename gen::I21 i21 = fusion::next(i20); typename gen::I22 i22 = fusion::next(i21); typename gen::I23 i23 = fusion::next(i22); typename gen::I24 i24 = fusion::next(i23); typename gen::I25 i25 = fusion::next(i24); typename gen::I26 i26 = fusion::next(i25); typename gen::I27 i27 = fusion::next(i26); typename gen::I28 i28 = fusion::next(i27); typename gen::I29 i29 = fusion::next(i28); typename gen::I30 i30 = fusion::next(i29); typename gen::I31 i31 = fusion::next(i30); typename gen::I32 i32 = fusion::next(i31); typename gen::I33 i33 = fusion::next(i32); typename gen::I34 i34 = fusion::next(i33); typename gen::I35 i35 = fusion::next(i34); typename gen::I36 i36 = fusion::next(i35); typename gen::I37 i37 = fusion::next(i36); typename gen::I38 i38 = fusion::next(i37); typename gen::I39 i39 = fusion::next(i38); typename gen::I40 i40 = fusion::next(i39); typename gen::I41 i41 = fusion::next(i40); typename gen::I42 i42 = fusion::next(i41); typename gen::I43 i43 = fusion::next(i42); typename gen::I44 i44 = fusion::next(i43); typename gen::I45 i45 = fusion::next(i44); typename gen::I46 i46 = fusion::next(i45); typename gen::I47 i47 = fusion::next(i46); typename gen::I48 i48 = fusion::next(i47); typename gen::I49 i49 = fusion::next(i48); + return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49); + } + }; +BOOST_FUSION_BARRIER_END +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque.hpp new file mode 100644 index 0000000000..3a5a21e259 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_DEQUE_SIZE <= 10 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 20 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 30 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 40 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 50 +#include +#else +#error "FUSION_MAX_DEQUE_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp new file mode 100644 index 0000000000..3eee063614 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp @@ -0,0 +1,280 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { + struct deque_tag; + template + struct deque + : + detail::deque_keyed_values::type, + sequence_base > + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef typename detail::deque_keyed_values::type base; + typedef typename detail::deque_initial_size::type size; + typedef mpl::int_ next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))) +{} +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(typename detail::call_param::type t0) + : base(t0, detail::nil_keyed_element()) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque const& rhs) + : base(rhs) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(Sequence const& seq + , typename disable_if, detail::enabler_>::type = detail::enabler + , typename enable_if, detail::enabler_>::type = detail::enabler) + : base(base::from_iterator(fusion::begin(seq))) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T const& rhs) + { + base::operator=(rhs); + return *this; + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_FUSION_GPU_ENABLED + explicit deque(T0_&& t0 + , typename enable_if, detail::enabler_>::type = detail::enabler + , typename disable_if_c< + boost::is_same::type const>::value + , detail::enabler_ + >::type = detail::enabler + ) + : base(std::forward( t0), detail::nil_keyed_element()) + {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque&& rhs) + : base(std::forward(rhs)) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque&& seq + , typename disable_if< + is_convertible, T0> + , detail::enabler_ + >::type = detail::enabler) + : base(std::forward>(seq)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T&& rhs) + { + base::operator=(std::forward( rhs)); + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(deque const& rhs) + { + base::operator=(static_cast(rhs)); + return *this; + } +# endif + }; + template <> + struct deque<> : detail::nil_keyed_element + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef mpl::int_<0> size; + typedef mpl::int_<0> next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(Sequence const&, + typename enable_if< + mpl::and_< + traits::is_sequence + , result_of::empty >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() BOOST_NOEXCEPT {} + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10_fwd.hpp new file mode 100644 index 0000000000..4752e96436 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10_fwd.hpp @@ -0,0 +1,15 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template< + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_> + struct deque; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp new file mode 100644 index 0000000000..c2359e84ce --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp @@ -0,0 +1,460 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { + struct deque_tag; + template + struct deque + : + detail::deque_keyed_values::type, + sequence_base > + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef typename detail::deque_keyed_values::type base; + typedef typename detail::deque_initial_size::type size; + typedef mpl::int_ next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))) +{} +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(typename detail::call_param::type t0) + : base(t0, detail::nil_keyed_element()) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque const& rhs) + : base(rhs) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(Sequence const& seq + , typename disable_if, detail::enabler_>::type = detail::enabler + , typename enable_if, detail::enabler_>::type = detail::enabler) + : base(base::from_iterator(fusion::begin(seq))) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T const& rhs) + { + base::operator=(rhs); + return *this; + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_FUSION_GPU_ENABLED + explicit deque(T0_&& t0 + , typename enable_if, detail::enabler_>::type = detail::enabler + , typename disable_if_c< + boost::is_same::type const>::value + , detail::enabler_ + >::type = detail::enabler + ) + : base(std::forward( t0), detail::nil_keyed_element()) + {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque&& rhs) + : base(std::forward(rhs)) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque&& seq + , typename disable_if< + is_convertible, T0> + , detail::enabler_ + >::type = detail::enabler) + : base(std::forward>(seq)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T&& rhs) + { + base::operator=(std::forward( rhs)); + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(deque const& rhs) + { + base::operator=(static_cast(rhs)); + return *this; + } +# endif + }; + template <> + struct deque<> : detail::nil_keyed_element + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef mpl::int_<0> size; + typedef mpl::int_<0> next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(Sequence const&, + typename enable_if< + mpl::and_< + traits::is_sequence + , result_of::empty >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() BOOST_NOEXCEPT {} + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20_fwd.hpp new file mode 100644 index 0000000000..c53618811b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20_fwd.hpp @@ -0,0 +1,15 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template< + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_> + struct deque; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30.hpp new file mode 100644 index 0000000000..40f05f3028 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30.hpp @@ -0,0 +1,640 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { + struct deque_tag; + template + struct deque + : + detail::deque_keyed_values::type, + sequence_base > + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef typename detail::deque_keyed_values::type base; + typedef typename detail::deque_initial_size::type size; + typedef mpl::int_ next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29))) +{} +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(typename detail::call_param::type t0) + : base(t0, detail::nil_keyed_element()) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque const& rhs) + : base(rhs) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(Sequence const& seq + , typename disable_if, detail::enabler_>::type = detail::enabler + , typename enable_if, detail::enabler_>::type = detail::enabler) + : base(base::from_iterator(fusion::begin(seq))) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T const& rhs) + { + base::operator=(rhs); + return *this; + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_FUSION_GPU_ENABLED + explicit deque(T0_&& t0 + , typename enable_if, detail::enabler_>::type = detail::enabler + , typename disable_if_c< + boost::is_same::type const>::value + , detail::enabler_ + >::type = detail::enabler + ) + : base(std::forward( t0), detail::nil_keyed_element()) + {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque&& rhs) + : base(std::forward(rhs)) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque&& seq + , typename disable_if< + is_convertible, T0> + , detail::enabler_ + >::type = detail::enabler) + : base(std::forward>(seq)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T&& rhs) + { + base::operator=(std::forward( rhs)); + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(deque const& rhs) + { + base::operator=(static_cast(rhs)); + return *this; + } +# endif + }; + template <> + struct deque<> : detail::nil_keyed_element + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef mpl::int_<0> size; + typedef mpl::int_<0> next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(Sequence const&, + typename enable_if< + mpl::and_< + traits::is_sequence + , result_of::empty >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() BOOST_NOEXCEPT {} + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30_fwd.hpp new file mode 100644 index 0000000000..d7abffcb8b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30_fwd.hpp @@ -0,0 +1,15 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template< + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_> + struct deque; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40.hpp new file mode 100644 index 0000000000..9df30bf3c2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40.hpp @@ -0,0 +1,820 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { + struct deque_tag; + template + struct deque + : + detail::deque_keyed_values::type, + sequence_base > + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef typename detail::deque_keyed_values::type base; + typedef typename detail::deque_initial_size::type size; + typedef mpl::int_ next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39))) +{} +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(typename detail::call_param::type t0) + : base(t0, detail::nil_keyed_element()) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque const& rhs) + : base(rhs) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(Sequence const& seq + , typename disable_if, detail::enabler_>::type = detail::enabler + , typename enable_if, detail::enabler_>::type = detail::enabler) + : base(base::from_iterator(fusion::begin(seq))) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T const& rhs) + { + base::operator=(rhs); + return *this; + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_FUSION_GPU_ENABLED + explicit deque(T0_&& t0 + , typename enable_if, detail::enabler_>::type = detail::enabler + , typename disable_if_c< + boost::is_same::type const>::value + , detail::enabler_ + >::type = detail::enabler + ) + : base(std::forward( t0), detail::nil_keyed_element()) + {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque&& rhs) + : base(std::forward(rhs)) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque&& seq + , typename disable_if< + is_convertible, T0> + , detail::enabler_ + >::type = detail::enabler) + : base(std::forward>(seq)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T&& rhs) + { + base::operator=(std::forward( rhs)); + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(deque const& rhs) + { + base::operator=(static_cast(rhs)); + return *this; + } +# endif + }; + template <> + struct deque<> : detail::nil_keyed_element + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef mpl::int_<0> size; + typedef mpl::int_<0> next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(Sequence const&, + typename enable_if< + mpl::and_< + traits::is_sequence + , result_of::empty >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() BOOST_NOEXCEPT {} + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40_fwd.hpp new file mode 100644 index 0000000000..72f2b9c24c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40_fwd.hpp @@ -0,0 +1,15 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template< + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_> + struct deque; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50.hpp new file mode 100644 index 0000000000..d4a62206a0 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50.hpp @@ -0,0 +1,1000 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { + struct deque_tag; + template + struct deque + : + detail::deque_keyed_values::type, + sequence_base > + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef typename detail::deque_keyed_values::type base; + typedef typename detail::deque_initial_size::type size; + typedef mpl::int_ next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1) + : base(detail::deque_keyed_values::construct(t0 , t1)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23) + : base(detail::deque_keyed_values::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46 , typename detail::call_param::type t47) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46 , T47 const& t47) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46 , T_47 && t47) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46) , std::forward( t47))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46 , typename detail::call_param::type t47 , typename detail::call_param::type t48) + : base(detail::deque_keyed_values::construct(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)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46 , T47 const& t47 , T48 const& t48) + : base(detail::deque_keyed_values::construct(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)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46 , T_47 && t47 , T_48 && t48) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46) , std::forward( t47) , std::forward( t48))) +{} +# endif +# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46 , typename detail::call_param::type t47 , typename detail::call_param::type t48 , typename detail::call_param::type t49) + : base(detail::deque_keyed_values::construct(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 , t49)) +{} +# endif +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9 , T10 const& t10 , T11 const& t11 , T12 const& t12 , T13 const& t13 , T14 const& t14 , T15 const& t15 , T16 const& t16 , T17 const& t17 , T18 const& t18 , T19 const& t19 , T20 const& t20 , T21 const& t21 , T22 const& t22 , T23 const& t23 , T24 const& t24 , T25 const& t25 , T26 const& t26 , T27 const& t27 , T28 const& t28 , T29 const& t29 , T30 const& t30 , T31 const& t31 , T32 const& t32 , T33 const& t33 , T34 const& t34 , T35 const& t35 , T36 const& t36 , T37 const& t37 , T38 const& t38 , T39 const& t39 , T40 const& t40 , T41 const& t41 , T42 const& t42 , T43 const& t43 , T44 const& t44 , T45 const& t45 , T46 const& t46 , T47 const& t47 , T48 const& t48 , T49 const& t49) + : base(detail::deque_keyed_values::construct(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 , t49)) +{} +template +BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED +deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46 , T_47 && t47 , T_48 && t48 , T_49 && t49) + : base(detail::deque_keyed_values:: + forward_(std::forward( t0) , std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46) , std::forward( t47) , std::forward( t48) , std::forward( t49))) +{} +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(typename detail::call_param::type t0) + : base(t0, detail::nil_keyed_element()) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque const& rhs) + : base(rhs) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque const& seq) + : base(seq) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(Sequence const& seq + , typename disable_if, detail::enabler_>::type = detail::enabler + , typename enable_if, detail::enabler_>::type = detail::enabler) + : base(base::from_iterator(fusion::begin(seq))) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T const& rhs) + { + base::operator=(rhs); + return *this; + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_FUSION_GPU_ENABLED + explicit deque(T0_&& t0 + , typename enable_if, detail::enabler_>::type = detail::enabler + , typename disable_if_c< + boost::is_same::type const>::value + , detail::enabler_ + >::type = detail::enabler + ) + : base(std::forward( t0), detail::nil_keyed_element()) + {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit deque(deque&& rhs) + : base(std::forward(rhs)) + {} + template + BOOST_FUSION_GPU_ENABLED + deque(deque&& seq + , typename disable_if< + is_convertible, T0> + , detail::enabler_ + >::type = detail::enabler) + : base(std::forward>(seq)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(T&& rhs) + { + base::operator=(std::forward( rhs)); + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque& + operator=(deque const& rhs) + { + base::operator=(static_cast(rhs)); + return *this; + } +# endif + }; + template <> + struct deque<> : detail::nil_keyed_element + { + typedef deque_tag fusion_tag; + typedef bidirectional_traversal_tag category; + typedef mpl::int_<0> size; + typedef mpl::int_<0> next_up; + typedef mpl::int_<-1> next_down; + typedef mpl::false_ is_view; + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque(Sequence const&, + typename enable_if< + mpl::and_< + traits::is_sequence + , result_of::empty >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + deque() BOOST_NOEXCEPT {} + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50_fwd.hpp new file mode 100644 index 0000000000..d46a2c7585 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50_fwd.hpp @@ -0,0 +1,15 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template< + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ , typename T40 = void_ , typename T41 = void_ , typename T42 = void_ , typename T43 = void_ , typename T44 = void_ , typename T45 = void_ , typename T46 = void_ , typename T47 = void_ , typename T48 = void_ , typename T49 = void_> + struct deque; +}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_fwd.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_fwd.hpp new file mode 100644 index 0000000000..9a770b9ef4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_fwd.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_DEQUE_SIZE <= 10 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 20 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 30 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 40 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 50 +#include +#else +#error "FUSION_MAX_DEQUE_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size.hpp new file mode 100644 index 0000000000..9431abe2b8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_DEQUE_SIZE <= 10 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 20 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 30 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 40 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 50 +#include +#else +#error "FUSION_MAX_DEQUE_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size10.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size10.hpp new file mode 100644 index 0000000000..5bf08d560b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size10.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct deque_initial_size + { + typedef mpl::vector args; + typedef typename mpl::find::type first_void; + typedef typename mpl::distance::type, first_void>::type type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size20.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size20.hpp new file mode 100644 index 0000000000..a48c33ac44 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size20.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct deque_initial_size + { + typedef mpl::vector args; + typedef typename mpl::find::type first_void; + typedef typename mpl::distance::type, first_void>::type type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size30.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size30.hpp new file mode 100644 index 0000000000..53e805201f --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size30.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct deque_initial_size + { + typedef mpl::vector args; + typedef typename mpl::find::type first_void; + typedef typename mpl::distance::type, first_void>::type type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size40.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size40.hpp new file mode 100644 index 0000000000..3a613b8f7f --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size40.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct deque_initial_size + { + typedef mpl::vector args; + typedef typename mpl::find::type first_void; + typedef typename mpl::distance::type, first_void>::type type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size50.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size50.hpp new file mode 100644 index 0000000000..2a31a72bd0 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size50.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct deque_initial_size + { + typedef mpl::vector args; + typedef typename mpl::find::type first_void; + typedef typename mpl::distance::type, first_void>::type type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values.hpp new file mode 100644 index 0000000000..6e79686547 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_DEQUE_SIZE <= 10 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 20 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 30 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 40 +#include +#elif FUSION_MAX_DEQUE_SIZE <= 50 +#include +#else +#error "FUSION_MAX_DEQUE_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values10.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values10.hpp new file mode 100644 index 0000000000..69bdca0382 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values10.hpp @@ -0,0 +1,252 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + struct nil_keyed_element; + template + struct deque_keyed_values_impl; + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct() + { + return type(); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_() + { + return type(); + } + }; + template + struct deque_keyed_values_impl + { + typedef mpl::int_ >::value> next_index; + typedef typename deque_keyed_values_impl< + next_index, + T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type tail; + typedef keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0) + { + return type(t0, + deque_keyed_values_impl< + next_index + >::construct()); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + >::forward_()); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 + >::construct(t1)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 + >::forward_(std::forward( t1))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 + >::construct(t1 , t2)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 + >::forward_(std::forward( t1) , std::forward( t2))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 + >::construct(t1 , t2 , t3)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 + >::construct(t1 , t2 , t3 , t4)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 + >::construct(t1 , t2 , t3 , t4 , t5)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 + >::construct(t1 , t2 , t3 , t4 , t5 , t6)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))); + } +# endif + }; + template + struct deque_keyed_values + : deque_keyed_values_impl, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> + {}; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values20.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values20.hpp new file mode 100644 index 0000000000..912811e1be --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values20.hpp @@ -0,0 +1,462 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + struct nil_keyed_element; + template + struct deque_keyed_values_impl; + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct() + { + return type(); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_() + { + return type(); + } + }; + template + struct deque_keyed_values_impl + { + typedef mpl::int_ >::value> next_index; + typedef typename deque_keyed_values_impl< + next_index, + T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>::type tail; + typedef keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0) + { + return type(t0, + deque_keyed_values_impl< + next_index + >::construct()); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + >::forward_()); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 + >::construct(t1)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 + >::forward_(std::forward( t1))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 + >::construct(t1 , t2)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 + >::forward_(std::forward( t1) , std::forward( t2))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 + >::construct(t1 , t2 , t3)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 + >::construct(t1 , t2 , t3 , t4)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 + >::construct(t1 , t2 , t3 , t4 , t5)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 + >::construct(t1 , t2 , t3 , t4 , t5 , t6)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))); + } +# endif + }; + template + struct deque_keyed_values + : deque_keyed_values_impl, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> + {}; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values30.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values30.hpp new file mode 100644 index 0000000000..f000f3917a --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values30.hpp @@ -0,0 +1,672 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + struct nil_keyed_element; + template + struct deque_keyed_values_impl; + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct() + { + return type(); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_() + { + return type(); + } + }; + template + struct deque_keyed_values_impl + { + typedef mpl::int_ >::value> next_index; + typedef typename deque_keyed_values_impl< + next_index, + 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>::type tail; + typedef keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0) + { + return type(t0, + deque_keyed_values_impl< + next_index + >::construct()); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + >::forward_()); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 + >::construct(t1)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 + >::forward_(std::forward( t1))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 + >::construct(t1 , t2)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 + >::forward_(std::forward( t1) , std::forward( t2))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 + >::construct(t1 , t2 , t3)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 + >::construct(t1 , t2 , t3 , t4)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 + >::construct(t1 , t2 , t3 , t4 , t5)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 + >::construct(t1 , t2 , t3 , t4 , t5 , t6)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23 , t24)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29))); + } +# endif + }; + template + struct deque_keyed_values + : deque_keyed_values_impl, 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> + {}; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values40.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values40.hpp new file mode 100644 index 0000000000..a2da8fb58b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values40.hpp @@ -0,0 +1,882 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + struct nil_keyed_element; + template + struct deque_keyed_values_impl; + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct() + { + return type(); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_() + { + return type(); + } + }; + template + struct deque_keyed_values_impl + { + typedef mpl::int_ >::value> next_index; + typedef typename deque_keyed_values_impl< + next_index, + 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>::type tail; + typedef keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0) + { + return type(t0, + deque_keyed_values_impl< + next_index + >::construct()); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + >::forward_()); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 + >::construct(t1)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 + >::forward_(std::forward( t1))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 + >::construct(t1 , t2)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 + >::forward_(std::forward( t1) , std::forward( t2))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 + >::construct(t1 , t2 , t3)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 + >::construct(t1 , t2 , t3 , t4)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 + >::construct(t1 , t2 , t3 , t4 , t5)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 + >::construct(t1 , t2 , t3 , t4 , t5 , t6)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23 , t24)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39))); + } +# endif + }; + template + struct deque_keyed_values + : deque_keyed_values_impl, 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> + {}; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values50.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values50.hpp new file mode 100644 index 0000000000..e4ff69bf94 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values50.hpp @@ -0,0 +1,1092 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + struct nil_keyed_element; + template + struct deque_keyed_values_impl; + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct() + { + return type(); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_() + { + return type(); + } + }; + template + struct deque_keyed_values_impl + { + typedef mpl::int_ >::value> next_index; + typedef typename deque_keyed_values_impl< + next_index, + 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>::type tail; + typedef keyed_element type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0) + { + return type(t0, + deque_keyed_values_impl< + next_index + >::construct()); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + >::forward_()); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 + >::construct(t1)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 + >::forward_(std::forward( t1))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 + >::construct(t1 , t2)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 + >::forward_(std::forward( t1) , std::forward( t2))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 + >::construct(t1 , t2 , t3)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 + >::construct(t1 , t2 , t3 , t4)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 + >::construct(t1 , t2 , t3 , t4 , t5)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 + >::construct(t1 , t2 , t3 , t4 , t5 , t6)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24) + { + return type(t0, + deque_keyed_values_impl< + next_index + , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 + >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9 , t10 , t11 , t12 , t13 , t14 , t15 , t16 , t17 , t18 , t19 , t20 , t21 , t22 , t23 , t24)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 , T_43 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 , T_43 , T_44 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 , T_43 , T_44 , T_45 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 , T_43 , T_44 , T_45 , T_46 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46 , typename detail::call_param::type t47) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46 , T_47 && t47) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 , T_43 , T_44 , T_45 , T_46 , T_47 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46) , std::forward( t47))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46 , typename detail::call_param::type t47 , typename detail::call_param::type t48) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46 , T_47 && t47 , T_48 && t48) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 , T_43 , T_44 , T_45 , T_46 , T_47 , T_48 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46) , std::forward( t47) , std::forward( t48))); + } +# endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct(typename detail::call_param::type t0 , typename detail::call_param::type t1 , typename detail::call_param::type t2 , typename detail::call_param::type t3 , typename detail::call_param::type t4 , typename detail::call_param::type t5 , typename detail::call_param::type t6 , typename detail::call_param::type t7 , typename detail::call_param::type t8 , typename detail::call_param::type t9 , typename detail::call_param::type t10 , typename detail::call_param::type t11 , typename detail::call_param::type t12 , typename detail::call_param::type t13 , typename detail::call_param::type t14 , typename detail::call_param::type t15 , typename detail::call_param::type t16 , typename detail::call_param::type t17 , typename detail::call_param::type t18 , typename detail::call_param::type t19 , typename detail::call_param::type t20 , typename detail::call_param::type t21 , typename detail::call_param::type t22 , typename detail::call_param::type t23 , typename detail::call_param::type t24 , typename detail::call_param::type t25 , typename detail::call_param::type t26 , typename detail::call_param::type t27 , typename detail::call_param::type t28 , typename detail::call_param::type t29 , typename detail::call_param::type t30 , typename detail::call_param::type t31 , typename detail::call_param::type t32 , typename detail::call_param::type t33 , typename detail::call_param::type t34 , typename detail::call_param::type t35 , typename detail::call_param::type t36 , typename detail::call_param::type t37 , typename detail::call_param::type t38 , typename detail::call_param::type t39 , typename detail::call_param::type t40 , typename detail::call_param::type t41 , typename detail::call_param::type t42 , typename detail::call_param::type t43 , typename detail::call_param::type t44 , typename detail::call_param::type t45 , typename detail::call_param::type t46 , typename detail::call_param::type t47 , typename detail::call_param::type t48 , typename detail::call_param::type t49) + { + return type(t0, + deque_keyed_values_impl< + next_index + , 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 + >::construct(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)); + } +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9 , T_10 && t10 , T_11 && t11 , T_12 && t12 , T_13 && t13 , T_14 && t14 , T_15 && t15 , T_16 && t16 , T_17 && t17 , T_18 && t18 , T_19 && t19 , T_20 && t20 , T_21 && t21 , T_22 && t22 , T_23 && t23 , T_24 && t24 , T_25 && t25 , T_26 && t26 , T_27 && t27 , T_28 && t28 , T_29 && t29 , T_30 && t30 , T_31 && t31 , T_32 && t32 , T_33 && t33 , T_34 && t34 , T_35 && t35 , T_36 && t36 , T_37 && t37 , T_38 && t38 , T_39 && t39 , T_40 && t40 , T_41 && t41 , T_42 && t42 , T_43 && t43 , T_44 && t44 , T_45 && t45 , T_46 && t46 , T_47 && t47 , T_48 && t48 , T_49 && t49) + { + return type(std::forward( t0), + deque_keyed_values_impl< + next_index + , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9 , T_10 , T_11 , T_12 , T_13 , T_14 , T_15 , T_16 , T_17 , T_18 , T_19 , T_20 , T_21 , T_22 , T_23 , T_24 , T_25 , T_26 , T_27 , T_28 , T_29 , T_30 , T_31 , T_32 , T_33 , T_34 , T_35 , T_36 , T_37 , T_38 , T_39 , T_40 , T_41 , T_42 , T_43 , T_44 , T_45 , T_46 , T_47 , T_48 , T_49 + >::forward_(std::forward( t1) , std::forward( t2) , std::forward( t3) , std::forward( t4) , std::forward( t5) , std::forward( t6) , std::forward( t7) , std::forward( t8) , std::forward( t9) , std::forward( t10) , std::forward( t11) , std::forward( t12) , std::forward( t13) , std::forward( t14) , std::forward( t15) , std::forward( t16) , std::forward( t17) , std::forward( t18) , std::forward( t19) , std::forward( t20) , std::forward( t21) , std::forward( t22) , std::forward( t23) , std::forward( t24) , std::forward( t25) , std::forward( t26) , std::forward( t27) , std::forward( t28) , std::forward( t29) , std::forward( t30) , std::forward( t31) , std::forward( t32) , std::forward( t33) , std::forward( t34) , std::forward( t35) , std::forward( t36) , std::forward( t37) , std::forward( t38) , std::forward( t39) , std::forward( t40) , std::forward( t41) , std::forward( t42) , std::forward( t43) , std::forward( t44) , std::forward( t45) , std::forward( t46) , std::forward( t47) , std::forward( t48) , std::forward( t49))); + } +# endif + }; + template + struct deque_keyed_values + : deque_keyed_values_impl, 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 , T49> + {}; +}}} diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/deque_keyed_values.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/deque_keyed_values.hpp new file mode 100644 index 0000000000..7c6df7b679 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/deque_keyed_values.hpp @@ -0,0 +1,76 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_DETAIL_CPP11_DEQUE_KEYED_VALUES_07042012_1901) +#define BOOST_FUSION_DEQUE_DETAIL_CPP11_DEQUE_KEYED_VALUES_07042012_1901 + +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + + template + struct deque_keyed_values_impl; + + template + struct deque_keyed_values_impl + { + typedef mpl::int_<(N::value + 1)> next_index; + typedef typename deque_keyed_values_impl::type tail; + typedef keyed_element type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct( + typename detail::call_param::type head + , typename detail::call_param::type... tail) + { + return type( + head + , deque_keyed_values_impl::construct(tail...) + ); + } +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_(Head_&& head, Tail_&&... tail) + { + return type( + BOOST_FUSION_FWD_ELEM(Head_, head) + , deque_keyed_values_impl:: + forward_(BOOST_FUSION_FWD_ELEM(Tail_, tail)...) + ); + } +#endif + }; + + struct nil_keyed_element; + + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type construct() { return type(); } + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type forward_() { return type(); } +#endif + }; + + template + struct deque_keyed_values + : deque_keyed_values_impl, Elements...> {}; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/end_impl.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/end_impl.hpp new file mode 100644 index 0000000000..8f67ff4af8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/end_impl.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_END_IMPL_09122006_2034) +#define BOOST_FUSION_DEQUE_END_IMPL_09122006_2034 + +#include +#include + +namespace boost { namespace fusion +{ + struct deque_tag; + + namespace extension + { + template + struct end_impl; + + template<> + struct end_impl + { + template + struct apply + { + typedef + deque_iterator + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq) + { + return type(seq); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/is_sequence_impl.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/is_sequence_impl.hpp new file mode 100644 index 0000000000..b4b9138cd9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/is_sequence_impl.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2010 Christopher Schmidt + + Distributed under the 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_FUSION_CONTAINER_DEQUE_DETAIL_IS_SEQUENCE_IMPL_HPP +#define BOOST_FUSION_CONTAINER_DEQUE_DETAIL_IS_SEQUENCE_IMPL_HPP + +#include +#include + +namespace boost { namespace fusion +{ + struct deque_tag; + + namespace extension + { + template + struct is_sequence_impl; + + template<> + struct is_sequence_impl + { + template + struct apply : mpl::true_ {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/keyed_element.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/keyed_element.hpp new file mode 100644 index 0000000000..3ab88b9283 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/keyed_element.hpp @@ -0,0 +1,181 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_DETAIL_KEYED_ELEMENT_26112006_1330) +#define BOOST_FUSION_DEQUE_DETAIL_KEYED_ELEMENT_26112006_1330 + +#include +#include +#include +#include + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && BOOST_WORKAROUND(BOOST_GCC, / 100 == 404) +#include +#include +#endif + +namespace boost { namespace fusion +{ + struct fusion_sequence_tag; +}} + +namespace boost { namespace fusion { namespace detail +{ + struct nil_keyed_element + { + typedef fusion_sequence_tag tag; + BOOST_FUSION_GPU_ENABLED + void get(); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static nil_keyed_element + from_iterator(It const&) + { + return nil_keyed_element(); + } + }; + + template + struct keyed_element : Rest + { + typedef Rest base; + typedef fusion_sequence_tag tag; + using Rest::get; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static keyed_element + from_iterator(It const& it) + { + return keyed_element( + *it, base::from_iterator(fusion::next(it))); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element(keyed_element const& rhs) + : Rest(rhs.get_base()), value_(rhs.value_) + {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element(keyed_element&& rhs) + : Rest(rhs.forward_base()) + , value_(BOOST_FUSION_FWD_ELEM(Value, rhs.value_)) + {} +#endif + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element(keyed_element const& rhs + , typename enable_if >::type* = 0) + : Rest(rhs.get_base()), value_(rhs.value_) + {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#endif + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + Rest& get_base() BOOST_NOEXCEPT + { + return *this; + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + Rest const& get_base() const BOOST_NOEXCEPT + { + return *this; + } + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + Rest&& forward_base() BOOST_NOEXCEPT + { + return std::move(*static_cast(this)); + } +#endif + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename cref_result::type get(Key) const + { + return value_; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename ref_result::type get(Key) + { + return value_; + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element( + typename detail::call_param::type value + , Rest const& rest) + : Rest(rest), value_(value) + {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#if BOOST_WORKAROUND(BOOST_GCC, / 100 == 404) + template >::type> +#else + typedef Value Value_; +#endif + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element(Value_&& value, Rest&& rest) + : Rest(std::move(rest)) + , value_(BOOST_FUSION_FWD_ELEM(Value, value)) + {} +#endif + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element() + : Rest(), value_() + {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element& operator=(keyed_element const& rhs) + { + base::operator=(static_cast(rhs)); // cast for msvc-7.1 + value_ = rhs.value_; + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element& operator=(keyed_element const& rhs) + { + base::operator=(rhs); + value_ = rhs.value_; + return *this; + } + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + keyed_element& operator=(keyed_element&& rhs) + { + base::operator=(rhs.forward_base()); + value_ = std::move(rhs.value_); + return *this; + } +#endif + + Value value_; + }; + + template + struct keyed_element_value_at + : keyed_element_value_at + {}; + + template + struct keyed_element_value_at, Key> + { + typedef Value type; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/detail/value_at_impl.hpp b/3rdparty/boost/boost/fusion/container/deque/detail/value_at_impl.hpp new file mode 100644 index 0000000000..f15dee01f8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/detail/value_at_impl.hpp @@ -0,0 +1,46 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_DEQUE_VALUE_AT_IMPL_08122006_0756) +#define BOOST_FUSION_DEQUE_VALUE_AT_IMPL_08122006_0756 + +#include +#include + +#include +#include + +namespace boost { namespace fusion +{ + struct deque_tag; + + namespace extension + { + template + struct value_at_impl; + + template<> + struct value_at_impl + { + template + struct apply + { + typedef typename Sequence::next_up next_up; + typedef typename Sequence::next_down next_down; + BOOST_MPL_ASSERT_RELATION(next_down::value, !=, next_up::value); + + static int const offset = next_down::value + 1; + typedef mpl::int_<(N::value + offset)> adjusted_index; + typedef typename + detail::keyed_element_value_at::type + type; + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/deque/front_extended_deque.hpp b/3rdparty/boost/boost/fusion/container/deque/front_extended_deque.hpp new file mode 100644 index 0000000000..ab4cdf7ca4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/deque/front_extended_deque.hpp @@ -0,0 +1,51 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_FRONT_EXTENDED_DEQUE_26112006_2209) +#define BOOST_FUSION_FRONT_EXTENDED_DEQUE_26112006_2209 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct front_extended_deque + : detail::keyed_element + , sequence_base > + { + typedef detail::keyed_element base; + typedef mpl::int_<(Deque::next_down::value - 1)> next_down; + typedef typename Deque::next_up next_up; + typedef mpl::int_<(result_of::size::value + 1)> size; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + front_extended_deque(Deque const& deque, Arg const& val) + : base(val, deque) + {} + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + front_extended_deque(Deque const& deque, Arg& val) + : base(val, deque) + {} +#else + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + front_extended_deque(Deque const& deque, Arg&& val) + : base(BOOST_FUSION_FWD_ELEM(Arg, val), deque) + {} +#endif + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list.hpp b/3rdparty/boost/boost/fusion/container/list.hpp new file mode 100644 index 0000000000..e3a1d8eff0 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list.hpp @@ -0,0 +1,17 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SEQUENCE_CLASS_LIST_10022005_0605) +#define FUSION_SEQUENCE_CLASS_LIST_10022005_0605 + +#include +#include +#include +#include +#include +#include + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/cons.hpp b/3rdparty/boost/boost/fusion/container/list/cons.hpp new file mode 100644 index 0000000000..dd7f887389 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/cons.hpp @@ -0,0 +1,148 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONS_07172005_0843) +#define FUSION_CONS_07172005_0843 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_tag; + struct forward_traversal_tag; + struct fusion_sequence_tag; + + template + struct cons : sequence_base > + { + typedef mpl::int_ size; + typedef cons_tag fusion_tag; + typedef fusion_sequence_tag tag; // this gets picked up by MPL + typedef mpl::false_ is_view; + typedef forward_traversal_tag category; + typedef Car car_type; + typedef Cdr cdr_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons() + : car(), cdr() {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit cons(typename detail::call_param::type in_car) + : car(in_car), cdr() {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons( + typename detail::call_param::type in_car + , typename detail::call_param::type in_cdr) + : car(in_car), cdr(in_cdr) {} + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons(cons const& rhs) + : car(rhs.car), cdr(rhs.cdr) {} + +#if BOOST_WORKAROUND(BOOST_GCC, / 100 == 406) && !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) + // Workaround for `array used as initializer` compile error on gcc 4.6 w/ c++0x. + template +#endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons(cons const& rhs) + : car(rhs.car), cdr(rhs.cdr) {} + + template + BOOST_FUSION_GPU_ENABLED + cons( + Sequence const& seq + , typename boost::enable_if< + mpl::and_< + traits::is_sequence + , mpl::not_ > + , mpl::not_ > > // use copy to car instead + , detail::enabler_ + >::type = detail::enabler + ) + : car(*fusion::begin(seq)) + , cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {} + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons(Iterator const& iter, mpl::true_ /*this_is_an_iterator*/) + : car(*iter) + , cdr(fusion::next(iter), mpl::true_()) {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons& operator=(cons const& rhs) + { + car = rhs.car; + cdr = rhs.cdr; + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons& operator=(cons const& rhs) + { + car = rhs.car; + cdr = rhs.cdr; + return *this; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if< + mpl::and_< + traits::is_sequence + , mpl::not_ > > + , cons&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type Iterator; + Iterator iter = fusion::begin(seq); + this->assign_from_iter(iter); + return *this; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + void assign_from_iter(Iterator const& iter) + { + car = *iter; + cdr.assign_from_iter(fusion::next(iter)); + } + + car_type car; + cdr_type cdr; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/list/cons_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/cons_fwd.hpp new file mode 100644 index 0000000000..547c42ca9b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/cons_fwd.hpp @@ -0,0 +1,23 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_CONS_FWD_HPP_INCLUDED) +#define BOOST_FUSION_CONS_FWD_HPP_INCLUDED + +namespace boost { namespace fusion +{ + struct nil_; + #ifndef nil + typedef nil_ nil; + #endif + + template + struct cons; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/list/cons_iterator.hpp b/3rdparty/boost/boost/fusion/container/list/cons_iterator.hpp new file mode 100644 index 0000000000..5c0491dbc8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/cons_iterator.hpp @@ -0,0 +1,110 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONS_ITERATOR_07172005_0849) +#define FUSION_CONS_ITERATOR_07172005_0849 + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct nil_; + struct cons_iterator_tag; + struct forward_traversal_tag; + + template + struct cons_iterator_identity; + + template + struct cons_iterator : iterator_base > + { + typedef cons_iterator_tag fusion_tag; + typedef forward_traversal_tag category; + typedef Cons cons_type; + typedef cons_iterator_identity< + typename add_const::type> + identity; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit cons_iterator(cons_type& in_cons) BOOST_NOEXCEPT + : cons(in_cons) {} + + cons_type& cons; + + // silence MSVC warning C4512: assignment operator could not be generated + BOOST_DELETED_FUNCTION(cons_iterator& operator= (cons_iterator const&)) + }; + + struct nil_iterator : iterator_base + { + typedef forward_traversal_tag category; + typedef cons_iterator_tag fusion_tag; + typedef nil_ cons_type; + typedef cons_iterator_identity< + add_const::type> + identity; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + nil_iterator() BOOST_NOEXCEPT {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit nil_iterator(nil_ const&) BOOST_NOEXCEPT {} + }; + + template <> + struct cons_iterator : nil_iterator + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons_iterator() BOOST_NOEXCEPT {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} + }; + + template <> + struct cons_iterator : nil_iterator + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons_iterator() BOOST_NOEXCEPT {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} + }; + + template <> + struct cons_iterator > : nil_iterator + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons_iterator() BOOST_NOEXCEPT {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} + }; + + template <> + struct cons_iterator const> : nil_iterator + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + cons_iterator() BOOST_NOEXCEPT {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} + }; +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::cons_iterator > + { }; +} +#endif + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/convert.hpp b/3rdparty/boost/boost/fusion/container/list/convert.hpp new file mode 100644 index 0000000000..d85fafebd4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/convert.hpp @@ -0,0 +1,60 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONVERT_09232005_1215) +#define FUSION_CONVERT_09232005_1215 + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace result_of + { + template + struct as_list + { + typedef typename + detail::build_cons< + typename result_of::begin::type + , typename result_of::end::type + > + build_cons; + + typedef typename build_cons::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& seq) + { + return build_cons::call(fusion::begin(seq), fusion::end(seq)); + } + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::as_list::type + as_list(Sequence& seq) + { + return result_of::as_list::call(seq); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::as_list::type + as_list(Sequence const& seq) + { + return result_of::as_list::call(seq); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/at_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/at_impl.hpp new file mode 100644 index 0000000000..ab36665c11 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/at_impl.hpp @@ -0,0 +1,136 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_AT_IMPL_07172005_0726) +#define FUSION_AT_IMPL_07172005_0726 + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace detail + { + template + struct cons_deref + { + typedef typename Cons::car_type type; + }; + + template + struct cons_advance + { + typedef typename + cons_advance::type::cdr_type + type; + }; + + template + struct cons_advance + { + typedef Cons type; + }; + + template + struct cons_advance + { + typedef typename Cons::cdr_type type; + }; + + template + struct cons_advance + { +#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above + typedef typename Cons::cdr_type::cdr_type type; +#else + typedef typename Cons::cdr_type _a; + typedef typename _a::cdr_type type; +#endif + }; + + template + struct cons_advance + { +#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above + typedef typename Cons::cdr_type::cdr_type::cdr_type type; +#else + typedef typename Cons::cdr_type _a; + typedef typename _a::cdr_type _b; + typedef typename _b::cdr_type type; +#endif + }; + + template + struct cons_advance + { +#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above + typedef typename Cons::cdr_type::cdr_type::cdr_type::cdr_type type; +#else + typedef typename Cons::cdr_type _a; + typedef typename _a::cdr_type _b; + typedef typename _b::cdr_type _c; + typedef typename _c::cdr_type type; +#endif + }; + } + + struct cons_tag; + + namespace extension + { + template + struct at_impl; + + template <> + struct at_impl + { + template + struct apply + { + typedef typename detail::cons_deref< + typename detail::cons_advance::type>::type + element; + + typedef typename + mpl::if_< + is_const + , typename detail::cref_result::type + , typename detail::ref_result::type + >::type + type; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Cons& s, mpl::int_) + { + return call(s.cdr, mpl::int_()); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Cons& s, mpl::int_<0>) + { + return s.car; + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s) + { + return call(s, mpl::int_()); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/begin_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/begin_impl.hpp new file mode 100644 index 0000000000..088b382d1c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/begin_impl.hpp @@ -0,0 +1,51 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BEGIN_IMPL_07172005_0824) +#define FUSION_BEGIN_IMPL_07172005_0824 + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct nil_; + + struct cons_tag; + + template + struct cons; + + template + struct cons_iterator; + + namespace extension + { + template + struct begin_impl; + + template <> + struct begin_impl + { + template + struct apply + { + typedef cons_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& t) + { + return type(t); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/build_cons.hpp b/3rdparty/boost/boost/fusion/container/list/detail/build_cons.hpp new file mode 100644 index 0000000000..206af1f132 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/build_cons.hpp @@ -0,0 +1,61 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BUILD_CONS_09232005_1222) +#define FUSION_BUILD_CONS_09232005_1222 + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template < + typename First + , typename Last + , bool is_empty = result_of::equal_to::value> + struct build_cons; + + template + struct build_cons + { + typedef nil_ type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static nil_ + call(First const&, Last const&) + { + return nil_(); + } + }; + + template + struct build_cons + { + typedef + build_cons::type, Last> + next_build_cons; + + typedef cons< + typename result_of::value_of::type + , typename next_build_cons::type> + type; + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const& f, Last const& l) + { + typename result_of::value_of::type v = *f; + return type(v, next_build_cons::call(fusion::next(f), l)); + } + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/convert_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/convert_impl.hpp new file mode 100644 index 0000000000..ff010186ac --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/convert_impl.hpp @@ -0,0 +1,53 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONVERT_IMPL_09232005_1215) +#define FUSION_CONVERT_IMPL_09232005_1215 + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_tag; + + namespace extension + { + template + struct convert_impl; + + template <> + struct convert_impl + { + template + struct apply + { + typedef typename + detail::build_cons< + typename result_of::begin::type + , typename result_of::end::type + > + build_cons; + + typedef typename build_cons::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& seq) + { + return build_cons::call(fusion::begin(seq), fusion::end(seq)); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/limits.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/limits.hpp new file mode 100644 index 0000000000..cc64ad7224 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/limits.hpp @@ -0,0 +1,23 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_LIST_LIMITS_07172005_0112) +#define FUSION_LIST_LIMITS_07172005_0112 + +#include + +#if !defined(FUSION_MAX_LIST_SIZE) +# define FUSION_MAX_LIST_SIZE 10 +#else +# if FUSION_MAX_LIST_SIZE < 3 +# undef FUSION_MAX_LIST_SIZE +# define FUSION_MAX_LIST_SIZE 10 +# endif +#endif + +#define FUSION_MAX_LIST_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_LIST_SIZE)) + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list.hpp new file mode 100644 index 0000000000..048d59b6b7 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list.hpp @@ -0,0 +1,104 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_LIST_07172005_1153) +#define FUSION_LIST_07172005_1153 + +#include +#include +#include +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list" FUSION_MAX_LIST_SIZE_STR ".hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct nil_; + struct void_; + + template + struct list + : detail::list_to_cons::type + { + private: + typedef + detail::list_to_cons + list_to_cons; + typedef typename list_to_cons::type inherited_type; + + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(list const& rhs) + : inherited_type(rhs) {} + + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs + , typename enable_if, detail::enabler_>::type = detail::enabler) + : inherited_type(rhs) {} + + // Expand a couple of forwarding constructors for arguments + // of type (T0), (T0, T1), (T0, T1, T2) etc. Exanple: + // + // list( + // typename detail::call_param::type arg0 + // , typename detail::call_param::type arg1) + // : inherited_type(list_to_cons::call(arg0, arg1)) {} + #include + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(list const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if, list&>::type + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + }; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp new file mode 100644 index 0000000000..f9a706786b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp @@ -0,0 +1,48 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#ifndef BOOST_PP_IS_ITERATING +#if !defined(FUSION_LIST_FORWARD_CTOR_07172005_0113) +#define FUSION_LIST_FORWARD_CTOR_07172005_0113 + +#include +#include +#include +#include +#include + +#define FUSION_LIST_CTOR_MAKE_CONS(z, n, type) tie_cons(BOOST_PP_CAT(_, n) +#define FUSION_LIST_CL_PAREN(z, n, type) ) + +#define BOOST_PP_FILENAME_1 \ + +#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE) +#include BOOST_PP_ITERATE() + +#undef FUSION_LIST_CTOR_MAKE_CONS +#undef FUSION_LIST_CL_PAREN + +#endif +#else // defined(BOOST_PP_IS_ITERATING) +/////////////////////////////////////////////////////////////////////////////// +// +// Preprocessor vertical repetition code +// +/////////////////////////////////////////////////////////////////////////////// +#define N BOOST_PP_ITERATION() + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED +#if N == 1 + explicit +#endif + list(BOOST_PP_ENUM_BINARY_PARAMS( + N, typename detail::call_param::type arg)) + : inherited_type(list_to_cons::call(BOOST_PP_ENUM_PARAMS(N, arg))) + {} + +#undef N +#endif // defined(BOOST_PP_IS_ITERATING) + diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_fwd.hpp new file mode 100644 index 0000000000..cedc700343 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_fwd.hpp @@ -0,0 +1,51 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_LIST_FORWARD_07172005_0224) +#define FUSION_LIST_FORWARD_07172005_0224 + +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list" FUSION_MAX_LIST_SIZE_STR "_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct void_; + + template < + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( + FUSION_MAX_LIST_SIZE, typename T, void_) + > + struct list; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp new file mode 100644 index 0000000000..989e91abe3 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp @@ -0,0 +1,76 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_LIST_TO_CONS_07172005_1041) +#define FUSION_LIST_TO_CONS_07172005_1041 + +#include +#include +#include +#include +#include +#include +#include + +#define FUSION_VOID(z, n, _) void_ + +namespace boost { namespace fusion +{ + struct nil_; + struct void_; +}} + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list_to_cons" FUSION_MAX_LIST_SIZE_STR ".hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion { namespace detail +{ + template + struct list_to_cons + { + typedef T0 head_type; + typedef list_to_cons< + BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_LIST_SIZE, T), void_> + tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + + typedef cons type; + + #include + }; + + template <> + struct list_to_cons + { + typedef nil_ type; + }; +}}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#undef FUSION_VOID +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp new file mode 100644 index 0000000000..e49db4a840 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp @@ -0,0 +1,44 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#ifndef BOOST_PP_IS_ITERATING +#if !defined(FUSION_LIST_TO_CONS_CALL_07192005_0138) +#define FUSION_LIST_TO_CONS_CALL_07192005_0138 + +#include +#include +#include + +#define BOOST_PP_FILENAME_1 \ + +#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE) +#include BOOST_PP_ITERATE() + +#endif +#else // defined(BOOST_PP_IS_ITERATING) +/////////////////////////////////////////////////////////////////////////////// +// +// Preprocessor vertical repetition code +// +/////////////////////////////////////////////////////////////////////////////// +#define N BOOST_PP_ITERATION() + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(BOOST_PP_ENUM_BINARY_PARAMS( + N, typename detail::call_param::type arg)) + { + return type(arg0 +#if N > 1 + , tail_list_to_cons::call(BOOST_PP_ENUM_SHIFTED_PARAMS(N, arg))); +#else + ); +#endif + } + +#undef N +#endif // defined(BOOST_PP_IS_ITERATING) + diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp new file mode 100644 index 0000000000..7af66f4964 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_LIST_SIZE <= 10 +#include +#elif FUSION_MAX_LIST_SIZE <= 20 +#include +#elif FUSION_MAX_LIST_SIZE <= 30 +#include +#elif FUSION_MAX_LIST_SIZE <= 40 +#include +#elif FUSION_MAX_LIST_SIZE <= 50 +#include +#else +#error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp new file mode 100644 index 0000000000..818dc52868 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp @@ -0,0 +1,100 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct nil_; + struct void_; + template + struct list + : detail::list_to_cons::type + { + private: + typedef + detail::list_to_cons + list_to_cons; + typedef typename list_to_cons::type inherited_type; + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(list const& rhs) + : inherited_type(rhs) {} + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs + , typename enable_if, detail::enabler_>::type = detail::enabler) + : inherited_type(rhs) {} + + + + + + + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit + list(typename detail::call_param::type arg0) + : inherited_type(list_to_cons::call(arg0)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + : inherited_type(list_to_cons::call(arg0 , arg1)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(list const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if, list&>::type + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp new file mode 100644 index 0000000000..f513a99194 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ + > + struct list; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp new file mode 100644 index 0000000000..3c3c3f6c5f --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp @@ -0,0 +1,140 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct nil_; + struct void_; + template + struct list + : detail::list_to_cons::type + { + private: + typedef + detail::list_to_cons + list_to_cons; + typedef typename list_to_cons::type inherited_type; + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(list const& rhs) + : inherited_type(rhs) {} + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs + , typename enable_if, detail::enabler_>::type = detail::enabler) + : inherited_type(rhs) {} + + + + + + + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit + list(typename detail::call_param::type arg0) + : inherited_type(list_to_cons::call(arg0)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + : inherited_type(list_to_cons::call(arg0 , arg1)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(list const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if, list&>::type + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp new file mode 100644 index 0000000000..2eedc8b293 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ + > + struct list; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp new file mode 100644 index 0000000000..143dce676f --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp @@ -0,0 +1,180 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct nil_; + struct void_; + template + struct list + : detail::list_to_cons::type + { + private: + typedef + detail::list_to_cons + list_to_cons; + typedef typename list_to_cons::type inherited_type; + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(list const& rhs) + : inherited_type(rhs) {} + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs + , typename enable_if, detail::enabler_>::type = detail::enabler) + : inherited_type(rhs) {} + + + + + + + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit + list(typename detail::call_param::type arg0) + : inherited_type(list_to_cons::call(arg0)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + : inherited_type(list_to_cons::call(arg0 , arg1)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(list const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if, list&>::type + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp new file mode 100644 index 0000000000..32bfc606f7 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ + > + struct list; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp new file mode 100644 index 0000000000..00e16041de --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp @@ -0,0 +1,220 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct nil_; + struct void_; + template + struct list + : detail::list_to_cons::type + { + private: + typedef + detail::list_to_cons + list_to_cons; + typedef typename list_to_cons::type inherited_type; + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(list const& rhs) + : inherited_type(rhs) {} + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs + , typename enable_if, detail::enabler_>::type = detail::enabler) + : inherited_type(rhs) {} + + + + + + + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit + list(typename detail::call_param::type arg0) + : inherited_type(list_to_cons::call(arg0)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + : inherited_type(list_to_cons::call(arg0 , arg1)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(list const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if, list&>::type + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp new file mode 100644 index 0000000000..5d0da6df4b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ + > + struct list; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp new file mode 100644 index 0000000000..b948f40a67 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp @@ -0,0 +1,260 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct nil_; + struct void_; + template + struct list + : detail::list_to_cons::type + { + private: + typedef + detail::list_to_cons + list_to_cons; + typedef typename list_to_cons::type inherited_type; + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(list const& rhs) + : inherited_type(rhs) {} + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs + , typename enable_if, detail::enabler_>::type = detail::enabler) + : inherited_type(rhs) {} + + + + + + + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit + list(typename detail::call_param::type arg0) + : inherited_type(list_to_cons::call(arg0)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + : inherited_type(list_to_cons::call(arg0 , arg1)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47 , arg48)) + {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48 , typename detail::call_param::type arg49) + : inherited_type(list_to_cons::call(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47 , arg48 , arg49)) + {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(list const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if, list&>::type + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp new file mode 100644 index 0000000000..2b3ae66cb6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ , typename T40 = void_ , typename T41 = void_ , typename T42 = void_ , typename T43 = void_ , typename T44 = void_ , typename T45 = void_ , typename T46 = void_ , typename T47 = void_ , typename T48 = void_ , typename T49 = void_ + > + struct list; +}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp new file mode 100644 index 0000000000..8a4037da48 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_LIST_SIZE <= 10 +#include +#elif FUSION_MAX_LIST_SIZE <= 20 +#include +#elif FUSION_MAX_LIST_SIZE <= 30 +#include +#elif FUSION_MAX_LIST_SIZE <= 40 +#include +#elif FUSION_MAX_LIST_SIZE <= 50 +#include +#else +#error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp new file mode 100644 index 0000000000..d9ee9bb245 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_LIST_SIZE <= 10 +#include +#elif FUSION_MAX_LIST_SIZE <= 20 +#include +#elif FUSION_MAX_LIST_SIZE <= 30 +#include +#elif FUSION_MAX_LIST_SIZE <= 40 +#include +#elif FUSION_MAX_LIST_SIZE <= 50 +#include +#else +#error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp new file mode 100644 index 0000000000..a98a8cc55f --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp @@ -0,0 +1,96 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct list_to_cons + { + typedef T0 head_type; + typedef list_to_cons< + T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9, void_> + tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + typedef cons type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0) + { + return type(arg0 + ); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + { + return type(arg0 + , tail_list_to_cons::call(arg1)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)); + } + }; + template <> + struct list_to_cons + { + typedef nil_ type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp new file mode 100644 index 0000000000..3adce01d8d --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp @@ -0,0 +1,166 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct list_to_cons + { + typedef T0 head_type; + typedef list_to_cons< + T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19, void_> + tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + typedef cons type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0) + { + return type(arg0 + ); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + { + return type(arg0 + , tail_list_to_cons::call(arg1)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)); + } + }; + template <> + struct list_to_cons + { + typedef nil_ type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp new file mode 100644 index 0000000000..7a834a7064 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp @@ -0,0 +1,236 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct list_to_cons + { + typedef T0 head_type; + typedef list_to_cons< + 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, void_> + tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + typedef cons type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0) + { + return type(arg0 + ); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + { + return type(arg0 + , tail_list_to_cons::call(arg1)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29)); + } + }; + template <> + struct list_to_cons + { + typedef nil_ type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp new file mode 100644 index 0000000000..731782dbfa --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp @@ -0,0 +1,306 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct list_to_cons + { + typedef T0 head_type; + typedef list_to_cons< + 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, void_> + tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + typedef cons type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0) + { + return type(arg0 + ); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + { + return type(arg0 + , tail_list_to_cons::call(arg1)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39)); + } + }; + template <> + struct list_to_cons + { + typedef nil_ type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp new file mode 100644 index 0000000000..e25371b5ae --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp @@ -0,0 +1,376 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion { namespace detail +{ + template + struct list_to_cons + { + typedef T0 head_type; + typedef list_to_cons< + 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, void_> + tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + typedef cons type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0) + { + return type(arg0 + ); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + { + return type(arg0 + , tail_list_to_cons::call(arg1)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47 , arg48)); + } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48 , typename detail::call_param::type arg49) + { + return type(arg0 + , tail_list_to_cons::call(arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47 , arg48 , arg49)); + } + }; + template <> + struct list_to_cons + { + typedef nil_ type; + }; +}}} diff --git a/3rdparty/boost/boost/fusion/container/list/detail/deref_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/deref_impl.hpp new file mode 100644 index 0000000000..3358a2a2f9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/deref_impl.hpp @@ -0,0 +1,54 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DEREF_IMPL_07172005_0831) +#define FUSION_DEREF_IMPL_07172005_0831 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + namespace extension + { + template + struct deref_impl; + + template <> + struct deref_impl + { + template + struct apply + { + typedef typename Iterator::cons_type cons_type; + typedef typename cons_type::car_type value_type; + + typedef typename mpl::eval_if< + is_const + , add_reference::type> + , add_reference >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return i.cons.car; + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/container/list/detail/empty_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/empty_impl.hpp new file mode 100644 index 0000000000..e25eab0bcc --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/empty_impl.hpp @@ -0,0 +1,39 @@ +/*============================================================================= + Copyright (c) 2007 Tobias Schwinger + + Distributed under the 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_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_tag; + + struct nil_; + + template + struct cons; + + namespace extension + { + template + struct empty_impl; + + template <> + struct empty_impl + { + template + struct apply + : boost::is_convertible + {}; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/end_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/end_impl.hpp new file mode 100644 index 0000000000..6ed05a5f31 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/end_impl.hpp @@ -0,0 +1,53 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_END_IMPL_07172005_0828) +#define FUSION_END_IMPL_07172005_0828 + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct nil_; + + struct cons_tag; + + template + struct cons; + + template + struct cons_iterator; + + namespace extension + { + template + struct end_impl; + + template <> + struct end_impl + { + template + struct apply + { + typedef cons_iterator< + typename mpl::if_, nil_ const, nil_>::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence&) + { + return type(); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/equal_to_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/equal_to_impl.hpp new file mode 100644 index 0000000000..a0fc297fc6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/equal_to_impl.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_EQUAL_TO_IMPL_09172005_1120) +#define FUSION_EQUAL_TO_IMPL_09172005_1120 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + namespace extension + { + template + struct equal_to_impl; + + template <> + struct equal_to_impl + { + template + struct apply + : is_same< + typename I1::identity + , typename I2::identity + > + { + }; + }; + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/list/detail/list_to_cons.hpp b/3rdparty/boost/boost/fusion/container/list/detail/list_to_cons.hpp new file mode 100644 index 0000000000..1ce1cfbafb --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/list_to_cons.hpp @@ -0,0 +1,61 @@ +/*============================================================================= + Copyright (c) 2014-2015 Kohei Takahashi + + Distributed under the 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 FUSION_LIST_MAIN_10262014_0447 +#define FUSION_LIST_MAIN_10262014_0447 + +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////////// +// Without variadics, we will use the PP version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct list_to_cons; + + template <> + struct list_to_cons<> + { + typedef nil_ type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call() { return type(); } + }; + + template + struct list_to_cons + { + typedef Head head_type; + typedef list_to_cons tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + + typedef cons type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param::type _h, + typename detail::call_param::type ..._t) + { + return type(_h, tail_list_to_cons::call(_t...)); + } + }; +}}} + +#endif +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/next_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/next_impl.hpp new file mode 100644 index 0000000000..f766458be0 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/next_impl.hpp @@ -0,0 +1,61 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_NEXT_IMPL_07172005_0836) +#define FUSION_NEXT_IMPL_07172005_0836 + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + template + struct cons_iterator; + + namespace extension + { + template + struct next_impl; + + template <> + struct next_impl + { + template + struct apply + { + typedef typename Iterator::cons_type cons_type; + typedef typename cons_type::cdr_type cdr_type; + + typedef cons_iterator< + typename mpl::eval_if< + is_const + , add_const + , mpl::identity + >::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.cons.cdr); + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/container/list/detail/reverse_cons.hpp b/3rdparty/boost/boost/fusion/container/list/detail/reverse_cons.hpp new file mode 100644 index 0000000000..14905180fb --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/reverse_cons.hpp @@ -0,0 +1,46 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_REVERSE_CONS_HPP_INCLUDED) +#define BOOST_FUSION_REVERSE_CONS_HPP_INCLUDED + +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + //////////////////////////////////////////////////////////////////////////// + template + struct reverse_cons; + + template + struct reverse_cons, State> + { + typedef reverse_cons > impl; + typedef typename impl::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(cons const &cons, State const &state = State()) + { + typedef fusion::cons cdr_type; + return impl::call(cons.cdr, cdr_type(cons.car, state)); + } + }; + + template + struct reverse_cons + { + typedef State type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static State const &call(nil_ const &, State const &state = State()) + { + return state; + } + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/value_at_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/value_at_impl.hpp new file mode 100644 index 0000000000..8b288a12bd --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/value_at_impl.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VALUE_AT_IMPL_07172005_0952) +#define FUSION_VALUE_AT_IMPL_07172005_0952 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_tag; + + namespace extension + { + template + struct value_at_impl; + + template <> + struct value_at_impl + { + template + struct apply + { + typedef typename + mpl::eval_if< + mpl::bool_ + , mpl::identity + , apply > + >::type + type; + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/detail/value_of_impl.hpp b/3rdparty/boost/boost/fusion/container/list/detail/value_of_impl.hpp new file mode 100644 index 0000000000..9e7aa2085c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/detail/value_of_impl.hpp @@ -0,0 +1,36 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VALUE_OF_IMPL_07172005_0838) +#define FUSION_VALUE_OF_IMPL_07172005_0838 + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + namespace extension + { + template + struct value_of_impl; + + template <> + struct value_of_impl + { + template + struct apply + { + typedef typename Iterator::cons_type cons_type; + typedef typename cons_type::car_type type; + }; + }; + } + +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/container/list/list.hpp b/3rdparty/boost/boost/fusion/container/list/list.hpp new file mode 100644 index 0000000000..865a6d7def --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/list.hpp @@ -0,0 +1,127 @@ +/*============================================================================= + Copyright (c) 2014-2015 Kohei Takahashi + + Distributed under the 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 FUSION_LIST_10262014_0537 +#define FUSION_LIST_10262014_0537 + +#include +#include + +/////////////////////////////////////////////////////////////////////////////// +// Without variadics, we will use the PP version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +#include +#include + +namespace boost { namespace fusion +{ + struct nil_; + + template <> + struct list<> + : detail::list_to_cons<>::type + { + private: + typedef detail::list_to_cons<> list_to_cons; + typedef list_to_cons::type inherited_type; + + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs) + : inherited_type(rhs) {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } +#else + template + BOOST_FUSION_GPU_ENABLED + list(Sequence&& rhs) + : inherited_type(std::forward(rhs)) {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(Sequence&& rhs) + { + inherited_type::operator=(std::forward(rhs)); + return *this; + } +#endif + }; + + template + struct list + : detail::list_to_cons::type + { + private: + typedef detail::list_to_cons list_to_cons; + typedef typename list_to_cons::type inherited_type; + + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs) + : inherited_type(rhs) {} +#else + template + BOOST_FUSION_GPU_ENABLED + list(Sequence&& rhs) + : inherited_type(std::forward(rhs)) {} +#endif + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit + list(typename detail::call_param::type ...args) + : inherited_type(list_to_cons::call(args...)) {} + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } +#else + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(Sequence&& rhs) + { + inherited_type::operator=(std::forward(rhs)); + return *this; + } +#endif + }; +}} + +#endif +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/list_fwd.hpp b/3rdparty/boost/boost/fusion/container/list/list_fwd.hpp new file mode 100644 index 0000000000..c5f2619267 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/list_fwd.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2014 Kohei Takahashi + + Distributed under the 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 FUSION_LIST_FORWARD_10262014_0528 +#define FUSION_LIST_FORWARD_10262014_0528 + +#include +#include + +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \ + || (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +# if defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# undef BOOST_FUSION_HAS_VARIADIC_LIST +# endif +#else +# if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# define BOOST_FUSION_HAS_VARIADIC_LIST +# endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +// With no variadics, we will use the C++03 version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +namespace boost { namespace fusion +{ + struct void_; + + template + struct list; +}} + +#endif +#endif diff --git a/3rdparty/boost/boost/fusion/container/list/nil.hpp b/3rdparty/boost/boost/fusion/container/list/nil.hpp new file mode 100644 index 0000000000..1b2c234986 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/list/nil.hpp @@ -0,0 +1,51 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005, 2014 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_NIL_04232014_0843) +#define FUSION_NIL_04232014_0843 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct void_; + struct cons_tag; + struct forward_traversal_tag; + struct fusion_sequence_tag; + + struct nil_ : sequence_base + { + typedef mpl::int_<0> size; + typedef cons_tag fusion_tag; + typedef fusion_sequence_tag tag; // this gets picked up by MPL + typedef mpl::false_ is_view; + typedef forward_traversal_tag category; + typedef void_ car_type; + typedef void_ cdr_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + nil_() BOOST_NOEXCEPT {} + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + nil_(Iterator const& /*iter*/, mpl::true_ /*this_is_an_iterator*/) BOOST_NOEXCEPT + {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + void assign_from_iter(Iterator const& /*iter*/) BOOST_NOEXCEPT + { + } + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/limits.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/limits.hpp new file mode 100644 index 0000000000..1eaa528c44 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/limits.hpp @@ -0,0 +1,28 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_MAP_LIMITS_07212005_1104) +#define FUSION_MAP_LIMITS_07212005_1104 + +#include +#include + +#if !defined(FUSION_MAX_MAP_SIZE) +# define FUSION_MAX_MAP_SIZE FUSION_MAX_VECTOR_SIZE +#else +# if FUSION_MAX_MAP_SIZE < 3 +# undef FUSION_MAX_MAP_SIZE +# if (FUSION_MAX_VECTOR_SIZE > 10) +# define FUSION_MAX_MAP_SIZE 10 +# else +# define FUSION_MAX_MAP_SIZE FUSION_MAX_VECTOR_SIZE +# endif +# endif +#endif + +#define FUSION_MAX_MAP_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_MAP_SIZE)) + +#endif diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/map_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/map_fwd.hpp new file mode 100644 index 0000000000..cf26fdddc3 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/map_fwd.hpp @@ -0,0 +1,53 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_MAP_FORWARD_07212005_1105) +#define FUSION_MAP_FORWARD_07212005_1105 + +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/map" FUSION_MAX_MAP_SIZE_STR "_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct void_; + struct map_tag; + struct map_iterator_tag; + + template < + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( + FUSION_MAX_MAP_SIZE, typename T, void_) + > + struct map; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map10_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map10_fwd.hpp new file mode 100644 index 0000000000..cd9292e3f1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map10_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct map_tag; + struct map_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ + > + struct map; +}} diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map20_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map20_fwd.hpp new file mode 100644 index 0000000000..0ff5fa50c5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map20_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct map_tag; + struct map_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ + > + struct map; +}} diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map30_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map30_fwd.hpp new file mode 100644 index 0000000000..d9be47ab44 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map30_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct map_tag; + struct map_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ + > + struct map; +}} diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map40_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map40_fwd.hpp new file mode 100644 index 0000000000..c2b40e1ced --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map40_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct map_tag; + struct map_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ + > + struct map; +}} diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map50_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map50_fwd.hpp new file mode 100644 index 0000000000..6c107225a7 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map50_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct map_tag; + struct map_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ , typename T40 = void_ , typename T41 = void_ , typename T42 = void_ , typename T43 = void_ , typename T44 = void_ , typename T45 = void_ , typename T46 = void_ , typename T47 = void_ , typename T48 = void_ , typename T49 = void_ + > + struct map; +}} diff --git a/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map_fwd.hpp new file mode 100644 index 0000000000..2e66a4577f --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/detail/cpp03/preprocessed/map_fwd.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_MAP_SIZE <= 10 +#include +#elif FUSION_MAX_MAP_SIZE <= 20 +#include +#elif FUSION_MAX_MAP_SIZE <= 30 +#include +#elif FUSION_MAX_MAP_SIZE <= 40 +#include +#elif FUSION_MAX_MAP_SIZE <= 50 +#include +#else +#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/map/map_fwd.hpp b/3rdparty/boost/boost/fusion/container/map/map_fwd.hpp new file mode 100644 index 0000000000..614ea24975 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/map/map_fwd.hpp @@ -0,0 +1,49 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_MAP_FORWARD_MAIN_07212005_1105) +#define FUSION_MAP_FORWARD_MAIN_07212005_1105 + +#include +#include + +#if (defined(BOOST_NO_CXX11_DECLTYPE) \ + || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \ + || defined(BOOST_NO_CXX11_RVALUE_REFERENCES)) \ + || (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +# if defined(BOOST_FUSION_HAS_VARIADIC_MAP) +# undef BOOST_FUSION_HAS_VARIADIC_MAP +# endif +#else +# if !defined(BOOST_FUSION_HAS_VARIADIC_MAP) +# define BOOST_FUSION_HAS_VARIADIC_MAP +# endif +#endif + +#if BOOST_WORKAROUND(BOOST_MSVC, < 1910) +# if defined(BOOST_FUSION_HAS_VARIADIC_MAP) +# undef BOOST_FUSION_HAS_VARIADIC_MAP +# endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +// With no decltype and variadics, we will use the C++03 version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_MAP) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +namespace boost { namespace fusion +{ + template + struct map; +}} + +#endif +#endif diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/limits.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/limits.hpp new file mode 100644 index 0000000000..2b800abfed --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/limits.hpp @@ -0,0 +1,28 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SET_LIMITS_09162005_1103) +#define FUSION_SET_LIMITS_09162005_1103 + +#include +#include + +#if !defined(FUSION_MAX_SET_SIZE) +# define FUSION_MAX_SET_SIZE FUSION_MAX_VECTOR_SIZE +#else +# if FUSION_MAX_SET_SIZE < 3 +# undef FUSION_MAX_SET_SIZE +# if (FUSION_MAX_VECTOR_SIZE > 10) +# define FUSION_MAX_SET_SIZE 10 +# else +# define FUSION_MAX_SET_SIZE FUSION_MAX_VECTOR_SIZE +# endif +# endif +#endif + +#define FUSION_MAX_SET_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_SET_SIZE)) + +#endif diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set10_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set10_fwd.hpp new file mode 100644 index 0000000000..8b6253dc3b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set10_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct set_tag; + struct set_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ + > + struct set; +}} diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set20_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set20_fwd.hpp new file mode 100644 index 0000000000..acbb56dee0 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set20_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct set_tag; + struct set_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ + > + struct set; +}} diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set30_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set30_fwd.hpp new file mode 100644 index 0000000000..9c774b0dad --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set30_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct set_tag; + struct set_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ + > + struct set; +}} diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set40_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set40_fwd.hpp new file mode 100644 index 0000000000..2f251c108c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set40_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct set_tag; + struct set_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ + > + struct set; +}} diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set50_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set50_fwd.hpp new file mode 100644 index 0000000000..478b98b578 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set50_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + struct set_tag; + struct set_iterator_tag; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ , typename T40 = void_ , typename T41 = void_ , typename T42 = void_ , typename T43 = void_ , typename T44 = void_ , typename T45 = void_ , typename T46 = void_ , typename T47 = void_ , typename T48 = void_ , typename T49 = void_ + > + struct set; +}} diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set_fwd.hpp new file mode 100644 index 0000000000..31e8e411bf --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/preprocessed/set_fwd.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_SET_SIZE <= 10 +#include +#elif FUSION_MAX_SET_SIZE <= 20 +#include +#elif FUSION_MAX_SET_SIZE <= 30 +#include +#elif FUSION_MAX_SET_SIZE <= 40 +#include +#elif FUSION_MAX_SET_SIZE <= 50 +#include +#else +#error "FUSION_MAX_SET_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/set/detail/cpp03/set_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/set_fwd.hpp new file mode 100644 index 0000000000..f50f6083ea --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/detail/cpp03/set_fwd.hpp @@ -0,0 +1,53 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SET_FORWARD_09162005_1102) +#define FUSION_SET_FORWARD_09162005_1102 + +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/set" FUSION_MAX_SET_SIZE_STR "_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct void_; + struct set_tag; + struct set_iterator_tag; + + template < + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( + FUSION_MAX_SET_SIZE, typename T, void_) + > + struct set; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/set/set_fwd.hpp b/3rdparty/boost/boost/fusion/container/set/set_fwd.hpp new file mode 100644 index 0000000000..7b5d6830a5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/set/set_fwd.hpp @@ -0,0 +1,46 @@ +/*============================================================================= + Copyright (c) 2014 Kohei Takahashi + + Distributed under the 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 FUSION_SET_FORWARD_11062014_1720 +#define FUSION_SET_FORWARD_11062014_1720 + +#include +#include +#include + +#if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) \ + || (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +# if defined(BOOST_FUSION_HAS_VARIADIC_SET) +# undef BOOST_FUSION_HAS_VARIADIC_SET +# endif +#else +# if !defined(BOOST_FUSION_HAS_VARIADIC_SET) +# define BOOST_FUSION_HAS_VARIADIC_SET +# endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +// With no variadics, we will use the C++03 version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_SET) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +namespace boost { namespace fusion +{ + struct set_tag; + struct set_iterator_tag; + + template + struct set; +}} + +#endif +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/advance_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/advance_impl.hpp new file mode 100644 index 0000000000..3bf26a5914 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/advance_impl.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ADVANCE_IMPL_09172005_1156) +#define FUSION_ADVANCE_IMPL_09172005_1156 + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + + template + struct vector_iterator; + + namespace extension + { + template + struct advance_impl; + + template <> + struct advance_impl + { + template + struct apply + { + typedef typename Iterator::index index; + typedef typename Iterator::vector vector; + typedef vector_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.vec); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/at_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/at_impl.hpp new file mode 100644 index 0000000000..a2900d7943 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/at_impl.hpp @@ -0,0 +1,60 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_AT_IMPL_05042005_0741) +#define FUSION_AT_IMPL_05042005_0741 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct vector_tag; + + namespace extension + { + template + struct at_impl; + + template <> + struct at_impl + { + template + struct apply + { + typedef typename value_at_impl::template apply::type element; + typedef typename detail::ref_result::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& v) + { + BOOST_STATIC_ASSERT((N::value < Sequence::size::value)); + return v.at_impl(N()); + } + }; + + template + struct apply + { + typedef typename value_at_impl::template apply::type element; + typedef typename detail::cref_result::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence const& v) + { + BOOST_STATIC_ASSERT((N::value < Sequence::size::value)); + return v.at_impl(N()); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/begin_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/begin_impl.hpp new file mode 100644 index 0000000000..ef24cd74ee --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/begin_impl.hpp @@ -0,0 +1,41 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BEGIN_IMPL_05042005_1136) +#define FUSION_BEGIN_IMPL_05042005_1136 + +#include +#include + +namespace boost { namespace fusion +{ + struct vector_tag; + + namespace extension + { + template + struct begin_impl; + + template <> + struct begin_impl + { + template + struct apply + { + typedef vector_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& v) + { + return type(v); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/config.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/config.hpp new file mode 100644 index 0000000000..718b2d7954 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/config.hpp @@ -0,0 +1,37 @@ +/*============================================================================= + Copyright (c) 2014-2015 Kohei Takahashi + + Distributed under the 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 FUSION_VECTOR_CONFIG_11052014_1720 +#define FUSION_VECTOR_CONFIG_11052014_1720 + +#include +#include +#include + +#if (defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \ + || defined(BOOST_NO_CXX11_RVALUE_REFERENCES) \ + || defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) \ + || defined(BOOST_NO_CXX11_DECLTYPE)) \ + || defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) \ + || defined(BOOST_FUSION_DISABLE_VARIADIC_VECTOR) \ + || (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +# if defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) +# undef BOOST_FUSION_HAS_VARIADIC_VECTOR +# endif +#else +# if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) +# define BOOST_FUSION_HAS_VARIADIC_VECTOR +# endif +#endif + +#if BOOST_WORKAROUND(BOOST_MSVC, < 1910) +# if defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) +# undef BOOST_FUSION_HAS_VARIADIC_VECTOR +# endif +#endif + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/limits.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/limits.hpp new file mode 100644 index 0000000000..74a05102d2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/limits.hpp @@ -0,0 +1,25 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR_LIMITS_07072005_1246) +#define FUSION_VECTOR_LIMITS_07072005_1246 + +#include +#include +#include + +#if !defined(FUSION_MAX_VECTOR_SIZE) +# define FUSION_MAX_VECTOR_SIZE 10 +#else +# if FUSION_MAX_VECTOR_SIZE < 3 +# undef FUSION_MAX_VECTOR_SIZE +# define FUSION_MAX_VECTOR_SIZE 10 +# endif +#endif + +#define FUSION_MAX_VECTOR_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_VECTOR_SIZE)) + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp new file mode 100644 index 0000000000..d5e8aad116 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp @@ -0,0 +1,1830 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + template + struct vector_data1 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data1() + : m0() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data1(U0 && arg0 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data1( + vector_data1&& other) + : m0(std::forward( other.m0)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data1( + typename detail::call_param::type arg0) + : m0(arg0) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data1( + vector_data1 const& other) + : m0(other.m0) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data1& + operator=(vector_data1 const& vec) + { + this->m0 = vec.m0; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data1 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + + return vector_data1(*i0); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data1 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + + return vector_data1(*i0); + } + T0 m0; + }; + template + struct vector1 + : vector_data1 + , sequence_base > + { + typedef vector1 this_type; + typedef vector_data1 base_type; + typedef mpl::vector1 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<1> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector1() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + explicit + vector1( + typename detail::call_param::type arg0) + : base_type(arg0) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + explicit + vector1(U0&& _0 + , typename boost::enable_if >::type* = 0 + ) + : base_type(std::forward( _0)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector1(vector1&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector1(vector1 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector1& + operator=(vector1 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector1& + operator=(vector1&& vec) + { + this->m0 = std::forward< T0>(vec.m0); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector1( + vector1 const& vec) + : base_type(vec.m0) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector1( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + , typename boost::disable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector1( + Sequence& seq + , typename boost::enable_if >::type* = 0 + , typename boost::disable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector1& + operator=(vector1 const& vec) + { + this->m0 = vec.m0; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + + this->m0 = *i0; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data2 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data2() + : m0() , m1() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data2(U0 && arg0 , U1 && arg1 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data2( + vector_data2&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data2( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + : m0(arg0) , m1(arg1) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data2( + vector_data2 const& other) + : m0(other.m0) , m1(other.m1) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data2& + operator=(vector_data2 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data2 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); + return vector_data2(*i0 , *i1); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data2 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); + return vector_data2(*i0 , *i1); + } + T0 m0; T1 m1; + }; + template + struct vector2 + : vector_data2 + , sequence_base > + { + typedef vector2 this_type; + typedef vector_data2 base_type; + typedef mpl::vector2 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<2> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector2() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector2( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1) + : base_type(arg0 , arg1) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector2(U0 && arg0 , U1 && arg1) + : base_type(std::forward( arg0) , std::forward( arg1)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector2(vector2&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector2(vector2 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector2& + operator=(vector2 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector2& + operator=(vector2&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector2( + vector2 const& vec) + : base_type(vec.m0 , vec.m1) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector2( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector2( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector2& + operator=(vector2 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); + this->m0 = *i0; this->m1 = *i1; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data3 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data3() + : m0() , m1() , m2() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data3(U0 && arg0 , U1 && arg1 , U2 && arg2 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data3( + vector_data3&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data3( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + : m0(arg0) , m1(arg1) , m2(arg2) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data3( + vector_data3 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data3& + operator=(vector_data3 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data3 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); + return vector_data3(*i0 , *i1 , *i2); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data3 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); + return vector_data3(*i0 , *i1 , *i2); + } + T0 m0; T1 m1; T2 m2; + }; + template + struct vector3 + : vector_data3 + , sequence_base > + { + typedef vector3 this_type; + typedef vector_data3 base_type; + typedef mpl::vector3 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<3> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector3() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector3( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2) + : base_type(arg0 , arg1 , arg2) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector3(U0 && arg0 , U1 && arg1 , U2 && arg2) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector3(vector3&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector3(vector3 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector3& + operator=(vector3 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector3& + operator=(vector3&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector3( + vector3 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector3( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector3( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector3& + operator=(vector3 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data4 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data4() + : m0() , m1() , m2() , m3() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data4(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data4( + vector_data4&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data4( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data4( + vector_data4 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data4& + operator=(vector_data4 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data4 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); + return vector_data4(*i0 , *i1 , *i2 , *i3); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data4 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); + return vector_data4(*i0 , *i1 , *i2 , *i3); + } + T0 m0; T1 m1; T2 m2; T3 m3; + }; + template + struct vector4 + : vector_data4 + , sequence_base > + { + typedef vector4 this_type; + typedef vector_data4 base_type; + typedef mpl::vector4 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<4> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector4() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector4( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3) + : base_type(arg0 , arg1 , arg2 , arg3) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector4(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector4(vector4&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector4(vector4 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector4& + operator=(vector4 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector4& + operator=(vector4&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector4( + vector4 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector4( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector4( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector4& + operator=(vector4 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data5 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data5() + : m0() , m1() , m2() , m3() , m4() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data5(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data5( + vector_data5&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data5( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data5( + vector_data5 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data5& + operator=(vector_data5 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data5 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); + return vector_data5(*i0 , *i1 , *i2 , *i3 , *i4); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data5 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); + return vector_data5(*i0 , *i1 , *i2 , *i3 , *i4); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; + }; + template + struct vector5 + : vector_data5 + , sequence_base > + { + typedef vector5 this_type; + typedef vector_data5 base_type; + typedef mpl::vector5 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<5> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector5() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector5( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector5(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector5(vector5&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector5(vector5 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector5& + operator=(vector5 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector5& + operator=(vector5&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector5( + vector5 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector5( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector5( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector5& + operator=(vector5 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data6 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data6() + : m0() , m1() , m2() , m3() , m4() , m5() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data6(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data6( + vector_data6&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data6( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data6( + vector_data6 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data6& + operator=(vector_data6 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data6 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); + return vector_data6(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data6 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); + return vector_data6(*i0 , *i1 , *i2 , *i3 , *i4 , *i5); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; + }; + template + struct vector6 + : vector_data6 + , sequence_base > + { + typedef vector6 this_type; + typedef vector_data6 base_type; + typedef mpl::vector6 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<6> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector6() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector6( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector6(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector6(vector6&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector6(vector6 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector6& + operator=(vector6 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector6& + operator=(vector6&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector6( + vector6 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector6( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector6( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector6& + operator=(vector6 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data7 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data7() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data7(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data7( + vector_data7&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data7( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data7( + vector_data7 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data7& + operator=(vector_data7 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data7 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); + return vector_data7(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data7 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); + return vector_data7(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; + }; + template + struct vector7 + : vector_data7 + , sequence_base > + { + typedef vector7 this_type; + typedef vector_data7 base_type; + typedef mpl::vector7 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<7> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector7() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector7( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector7(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector7(vector7&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector7(vector7 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector7& + operator=(vector7 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector7& + operator=(vector7&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector7( + vector7 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector7( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector7( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector7& + operator=(vector7 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data8 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data8() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data8(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data8( + vector_data8&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data8( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data8( + vector_data8 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data8& + operator=(vector_data8 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data8 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); + return vector_data8(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data8 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); + return vector_data8(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; + }; + template + struct vector8 + : vector_data8 + , sequence_base > + { + typedef vector8 this_type; + typedef vector_data8 base_type; + typedef mpl::vector8 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<8> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector8() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector8( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector8(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector8(vector8&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector8(vector8 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector8& + operator=(vector8 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector8& + operator=(vector8&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector8( + vector8 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector8( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector8( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector8& + operator=(vector8 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data9 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data9() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data9(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data9( + vector_data9&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data9( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data9( + vector_data9 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data9& + operator=(vector_data9 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data9 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); + return vector_data9(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data9 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); + return vector_data9(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; + }; + template + struct vector9 + : vector_data9 + , sequence_base > + { + typedef vector9 this_type; + typedef vector_data9 base_type; + typedef mpl::vector9 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<9> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector9() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector9( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector9(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector9(vector9&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector9(vector9 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector9& + operator=(vector9 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector9& + operator=(vector9&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector9( + vector9 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector9( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector9( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector9& + operator=(vector9 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data10 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data10() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data10(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data10( + vector_data10&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data10( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data10( + vector_data10 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data10& + operator=(vector_data10 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data10 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); + return vector_data10(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data10 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); + return vector_data10(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; + }; + template + struct vector10 + : vector_data10 + , sequence_base > + { + typedef vector10 this_type; + typedef vector_data10 base_type; + typedef mpl::vector10 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<10> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector10() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector10( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector10(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector10(vector10&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector10(vector10 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector10& + operator=(vector10 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector10& + operator=(vector10&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector10( + vector10 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector10( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector10( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector10& + operator=(vector10 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp new file mode 100644 index 0000000000..33f817ffaf --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + + template + struct vector1; + template + struct vector2; + template + struct vector3; + template + struct vector4; + template + struct vector5; + template + struct vector6; + template + struct vector7; + template + struct vector8; + template + struct vector9; + template + struct vector10; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp new file mode 100644 index 0000000000..91a9e59c46 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp @@ -0,0 +1,1824 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + template + struct vector_data11 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data11() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data11(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data11( + vector_data11&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data11( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data11( + vector_data11 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data11& + operator=(vector_data11 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data11 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); + return vector_data11(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data11 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); + return vector_data11(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; + }; + template + struct vector11 + : vector_data11 + , sequence_base > + { + typedef vector11 this_type; + typedef vector_data11 base_type; + typedef mpl::vector11 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<11> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector11() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector11( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector11(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector11(vector11&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector11(vector11 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector11& + operator=(vector11 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector11& + operator=(vector11&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector11( + vector11 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector11( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector11( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector11& + operator=(vector11 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data12 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data12() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data12(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data12( + vector_data12&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data12( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data12( + vector_data12 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data12& + operator=(vector_data12 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data12 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); + return vector_data12(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data12 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); + return vector_data12(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; + }; + template + struct vector12 + : vector_data12 + , sequence_base > + { + typedef vector12 this_type; + typedef vector_data12 base_type; + typedef mpl::vector12 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<12> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector12() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector12( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector12(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector12(vector12&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector12(vector12 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector12& + operator=(vector12 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector12& + operator=(vector12&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector12( + vector12 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector12( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector12( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector12& + operator=(vector12 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data13 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data13() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data13(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data13( + vector_data13&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data13( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data13( + vector_data13 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data13& + operator=(vector_data13 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data13 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); + return vector_data13(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data13 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); + return vector_data13(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; + }; + template + struct vector13 + : vector_data13 + , sequence_base > + { + typedef vector13 this_type; + typedef vector_data13 base_type; + typedef mpl::vector13 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<13> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector13() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector13( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector13(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector13(vector13&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector13(vector13 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector13& + operator=(vector13 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector13& + operator=(vector13&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector13( + vector13 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector13( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector13( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector13& + operator=(vector13 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data14 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data14() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data14(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data14( + vector_data14&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data14( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data14( + vector_data14 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data14& + operator=(vector_data14 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data14 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); + return vector_data14(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data14 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); + return vector_data14(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; + }; + template + struct vector14 + : vector_data14 + , sequence_base > + { + typedef vector14 this_type; + typedef vector_data14 base_type; + typedef mpl::vector14 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<14> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector14() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector14( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector14(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector14(vector14&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector14(vector14 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector14& + operator=(vector14 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector14& + operator=(vector14&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector14( + vector14 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector14( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector14( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector14& + operator=(vector14 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data15 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data15() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data15(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data15( + vector_data15&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data15( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data15( + vector_data15 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data15& + operator=(vector_data15 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data15 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); + return vector_data15(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data15 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); + return vector_data15(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; + }; + template + struct vector15 + : vector_data15 + , sequence_base > + { + typedef vector15 this_type; + typedef vector_data15 base_type; + typedef mpl::vector15 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<15> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector15() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector15( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector15(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector15(vector15&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector15(vector15 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector15& + operator=(vector15 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector15& + operator=(vector15&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector15( + vector15 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector15( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector15( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector15& + operator=(vector15 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data16 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data16() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data16(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data16( + vector_data16&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data16( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data16( + vector_data16 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data16& + operator=(vector_data16 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data16 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); + return vector_data16(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data16 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); + return vector_data16(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; + }; + template + struct vector16 + : vector_data16 + , sequence_base > + { + typedef vector16 this_type; + typedef vector_data16 base_type; + typedef mpl::vector16 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<16> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector16() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector16( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector16(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector16(vector16&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector16(vector16 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector16& + operator=(vector16 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector16& + operator=(vector16&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector16( + vector16 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector16( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector16( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector16& + operator=(vector16 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data17 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data17() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data17(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data17( + vector_data17&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data17( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data17( + vector_data17 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data17& + operator=(vector_data17 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data17 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); + return vector_data17(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data17 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); + return vector_data17(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; + }; + template + struct vector17 + : vector_data17 + , sequence_base > + { + typedef vector17 this_type; + typedef vector_data17 base_type; + typedef mpl::vector17 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<17> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector17() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector17( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector17(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector17(vector17&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector17(vector17 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector17& + operator=(vector17 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector17& + operator=(vector17&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector17( + vector17 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector17( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector17( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector17& + operator=(vector17 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data18 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data18() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data18(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data18( + vector_data18&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data18( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data18( + vector_data18 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data18& + operator=(vector_data18 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data18 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); + return vector_data18(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data18 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); + return vector_data18(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; + }; + template + struct vector18 + : vector_data18 + , sequence_base > + { + typedef vector18 this_type; + typedef vector_data18 base_type; + typedef mpl::vector18 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<18> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector18() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector18( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector18(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector18(vector18&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector18(vector18 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector18& + operator=(vector18 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector18& + operator=(vector18&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector18( + vector18 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector18( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector18( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector18& + operator=(vector18 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data19 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data19() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data19(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data19( + vector_data19&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data19( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data19( + vector_data19 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data19& + operator=(vector_data19 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data19 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); + return vector_data19(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data19 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); + return vector_data19(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; + }; + template + struct vector19 + : vector_data19 + , sequence_base > + { + typedef vector19 this_type; + typedef vector_data19 base_type; + typedef mpl::vector19 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<19> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector19() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector19( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector19(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector19(vector19&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector19(vector19 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector19& + operator=(vector19 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector19& + operator=(vector19&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector19( + vector19 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector19( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector19( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector19& + operator=(vector19 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data20 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data20() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data20(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data20( + vector_data20&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data20( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data20( + vector_data20 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data20& + operator=(vector_data20 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data20 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); + return vector_data20(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data20 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); + return vector_data20(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; + }; + template + struct vector20 + : vector_data20 + , sequence_base > + { + typedef vector20 this_type; + typedef vector_data20 base_type; + typedef mpl::vector20 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<20> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector20() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector20( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector20(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector20(vector20&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector20(vector20 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector20& + operator=(vector20 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector20& + operator=(vector20&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector20( + vector20 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector20( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector20( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector20& + operator=(vector20 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp new file mode 100644 index 0000000000..b1672857a8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + + template + struct vector11; + template + struct vector12; + template + struct vector13; + template + struct vector14; + template + struct vector15; + template + struct vector16; + template + struct vector17; + template + struct vector18; + template + struct vector19; + template + struct vector20; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp new file mode 100644 index 0000000000..c823452038 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp @@ -0,0 +1,1824 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + template + struct vector_data21 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data21() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data21(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data21( + vector_data21&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data21( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data21( + vector_data21 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data21& + operator=(vector_data21 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data21 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); + return vector_data21(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data21 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); + return vector_data21(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; + }; + template + struct vector21 + : vector_data21 + , sequence_base > + { + typedef vector21 this_type; + typedef vector_data21 base_type; + typedef mpl::vector21 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<21> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector21() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector21( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector21(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector21(vector21&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector21(vector21 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector21& + operator=(vector21 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector21& + operator=(vector21&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector21( + vector21 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector21( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector21( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector21& + operator=(vector21 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data22 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data22() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data22(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data22( + vector_data22&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data22( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data22( + vector_data22 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data22& + operator=(vector_data22 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data22 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); + return vector_data22(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data22 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); + return vector_data22(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; + }; + template + struct vector22 + : vector_data22 + , sequence_base > + { + typedef vector22 this_type; + typedef vector_data22 base_type; + typedef mpl::vector22 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<22> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector22() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector22( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector22(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector22(vector22&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector22(vector22 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector22& + operator=(vector22 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector22& + operator=(vector22&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector22( + vector22 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector22( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector22( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector22& + operator=(vector22 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data23 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data23() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data23(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data23( + vector_data23&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data23( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data23( + vector_data23 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data23& + operator=(vector_data23 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data23 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); + return vector_data23(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data23 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); + return vector_data23(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; + }; + template + struct vector23 + : vector_data23 + , sequence_base > + { + typedef vector23 this_type; + typedef vector_data23 base_type; + typedef mpl::vector23 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<23> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector23() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector23( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector23(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector23(vector23&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector23(vector23 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector23& + operator=(vector23 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector23& + operator=(vector23&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector23( + vector23 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector23( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector23( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector23& + operator=(vector23 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data24 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data24() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data24(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data24( + vector_data24&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data24( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data24( + vector_data24 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data24& + operator=(vector_data24 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data24 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); + return vector_data24(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data24 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); + return vector_data24(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; + }; + template + struct vector24 + : vector_data24 + , sequence_base > + { + typedef vector24 this_type; + typedef vector_data24 base_type; + typedef mpl::vector24 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<24> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector24() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector24( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector24(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector24(vector24&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector24(vector24 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector24& + operator=(vector24 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector24& + operator=(vector24&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector24( + vector24 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector24( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector24( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector24& + operator=(vector24 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data25 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data25() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data25(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data25( + vector_data25&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data25( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data25( + vector_data25 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data25& + operator=(vector_data25 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data25 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); + return vector_data25(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data25 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); + return vector_data25(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; + }; + template + struct vector25 + : vector_data25 + , sequence_base > + { + typedef vector25 this_type; + typedef vector_data25 base_type; + typedef mpl::vector25 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<25> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector25() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector25( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector25(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector25(vector25&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector25(vector25 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector25& + operator=(vector25 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector25& + operator=(vector25&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector25( + vector25 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector25( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector25( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector25& + operator=(vector25 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data26 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data26() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data26(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data26( + vector_data26&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data26( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data26( + vector_data26 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data26& + operator=(vector_data26 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data26 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); + return vector_data26(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data26 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); + return vector_data26(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; + }; + template + struct vector26 + : vector_data26 + , sequence_base > + { + typedef vector26 this_type; + typedef vector_data26 base_type; + typedef mpl::vector26 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<26> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector26() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector26( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector26(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector26(vector26&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector26(vector26 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector26& + operator=(vector26 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector26& + operator=(vector26&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector26( + vector26 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector26( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector26( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector26& + operator=(vector26 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data27 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data27() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data27(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data27( + vector_data27&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data27( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data27( + vector_data27 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data27& + operator=(vector_data27 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data27 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); + return vector_data27(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data27 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); + return vector_data27(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; + }; + template + struct vector27 + : vector_data27 + , sequence_base > + { + typedef vector27 this_type; + typedef vector_data27 base_type; + typedef mpl::vector27 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<27> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector27() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector27( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector27(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector27(vector27&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector27(vector27 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector27& + operator=(vector27 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector27& + operator=(vector27&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector27( + vector27 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector27( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector27( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector27& + operator=(vector27 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data28 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data28() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data28(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data28( + vector_data28&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data28( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data28( + vector_data28 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data28& + operator=(vector_data28 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data28 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); + return vector_data28(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data28 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); + return vector_data28(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; + }; + template + struct vector28 + : vector_data28 + , sequence_base > + { + typedef vector28 this_type; + typedef vector_data28 base_type; + typedef mpl::vector28 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<28> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector28() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector28( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector28(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector28(vector28&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector28(vector28 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector28& + operator=(vector28 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector28& + operator=(vector28&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector28( + vector28 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector28( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector28( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector28& + operator=(vector28 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data29 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data29() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data29(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data29( + vector_data29&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data29( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data29( + vector_data29 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data29& + operator=(vector_data29 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data29 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); + return vector_data29(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data29 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); + return vector_data29(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; + }; + template + struct vector29 + : vector_data29 + , sequence_base > + { + typedef vector29 this_type; + typedef vector_data29 base_type; + typedef mpl::vector29 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<29> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector29() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector29( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector29(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector29(vector29&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector29(vector29 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector29& + operator=(vector29 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector29& + operator=(vector29&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector29( + vector29 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector29( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector29( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector29& + operator=(vector29 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data30 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data30() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data30(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data30( + vector_data30&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data30( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data30( + vector_data30 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data30& + operator=(vector_data30 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data30 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); + return vector_data30(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data30 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); + return vector_data30(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; + }; + template + struct vector30 + : vector_data30 + , sequence_base > + { + typedef vector30 this_type; + typedef vector_data30 base_type; + typedef mpl::vector30 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<30> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector30() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector30( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector30(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector30(vector30&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector30(vector30 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector30& + operator=(vector30 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector30& + operator=(vector30&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector30( + vector30 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector30( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector30( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector30& + operator=(vector30 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp new file mode 100644 index 0000000000..39f96aa836 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + + template + struct vector21; + template + struct vector22; + template + struct vector23; + template + struct vector24; + template + struct vector25; + template + struct vector26; + template + struct vector27; + template + struct vector28; + template + struct vector29; + template + struct vector30; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp new file mode 100644 index 0000000000..ec16fcd94a --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp @@ -0,0 +1,1824 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + template + struct vector_data31 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data31() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data31(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data31( + vector_data31&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data31( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data31( + vector_data31 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data31& + operator=(vector_data31 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data31 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); + return vector_data31(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data31 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); + return vector_data31(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; + }; + template + struct vector31 + : vector_data31 + , sequence_base > + { + typedef vector31 this_type; + typedef vector_data31 base_type; + typedef mpl::vector31 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<31> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector31() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector31( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector31(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector31(vector31&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector31(vector31 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector31& + operator=(vector31 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector31& + operator=(vector31&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector31( + vector31 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector31( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector31( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector31& + operator=(vector31 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data32 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data32() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data32(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data32( + vector_data32&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data32( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data32( + vector_data32 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data32& + operator=(vector_data32 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data32 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); + return vector_data32(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data32 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); + return vector_data32(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; + }; + template + struct vector32 + : vector_data32 + , sequence_base > + { + typedef vector32 this_type; + typedef vector_data32 base_type; + typedef mpl::vector32 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<32> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector32() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector32( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector32(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector32(vector32&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector32(vector32 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector32& + operator=(vector32 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector32& + operator=(vector32&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector32( + vector32 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector32( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector32( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector32& + operator=(vector32 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data33 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data33() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data33(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data33( + vector_data33&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data33( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data33( + vector_data33 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data33& + operator=(vector_data33 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data33 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); + return vector_data33(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data33 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); + return vector_data33(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; + }; + template + struct vector33 + : vector_data33 + , sequence_base > + { + typedef vector33 this_type; + typedef vector_data33 base_type; + typedef mpl::vector33 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<33> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector33() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector33( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector33(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector33(vector33&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector33(vector33 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector33& + operator=(vector33 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector33& + operator=(vector33&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector33( + vector33 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector33( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector33( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector33& + operator=(vector33 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data34 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data34() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data34(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data34( + vector_data34&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data34( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data34( + vector_data34 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data34& + operator=(vector_data34 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data34 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); + return vector_data34(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data34 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); + return vector_data34(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; + }; + template + struct vector34 + : vector_data34 + , sequence_base > + { + typedef vector34 this_type; + typedef vector_data34 base_type; + typedef mpl::vector34 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<34> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector34() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector34( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector34(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector34(vector34&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector34(vector34 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector34& + operator=(vector34 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector34& + operator=(vector34&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector34( + vector34 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector34( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector34( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector34& + operator=(vector34 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data35 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data35() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data35(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data35( + vector_data35&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data35( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data35( + vector_data35 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data35& + operator=(vector_data35 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data35 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); + return vector_data35(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data35 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); + return vector_data35(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; + }; + template + struct vector35 + : vector_data35 + , sequence_base > + { + typedef vector35 this_type; + typedef vector_data35 base_type; + typedef mpl::vector35 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<35> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector35() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector35( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector35(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector35(vector35&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector35(vector35 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector35& + operator=(vector35 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector35& + operator=(vector35&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector35( + vector35 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector35( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector35( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector35& + operator=(vector35 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data36 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data36() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data36(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data36( + vector_data36&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data36( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data36( + vector_data36 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data36& + operator=(vector_data36 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data36 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); + return vector_data36(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data36 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); + return vector_data36(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; + }; + template + struct vector36 + : vector_data36 + , sequence_base > + { + typedef vector36 this_type; + typedef vector_data36 base_type; + typedef mpl::vector36 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<36> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector36() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector36( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector36(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector36(vector36&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector36(vector36 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector36& + operator=(vector36 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector36& + operator=(vector36&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector36( + vector36 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector36( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector36( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector36& + operator=(vector36 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data37 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data37() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data37(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data37( + vector_data37&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data37( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data37( + vector_data37 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data37& + operator=(vector_data37 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data37 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); + return vector_data37(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data37 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); + return vector_data37(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; + }; + template + struct vector37 + : vector_data37 + , sequence_base > + { + typedef vector37 this_type; + typedef vector_data37 base_type; + typedef mpl::vector37 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<37> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector37() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector37( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector37(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector37(vector37&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector37(vector37 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector37& + operator=(vector37 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector37& + operator=(vector37&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector37( + vector37 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector37( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector37( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector37& + operator=(vector37 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data38 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data38() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data38(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data38( + vector_data38&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data38( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data38( + vector_data38 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data38& + operator=(vector_data38 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data38 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); + return vector_data38(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data38 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); + return vector_data38(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; + }; + template + struct vector38 + : vector_data38 + , sequence_base > + { + typedef vector38 this_type; + typedef vector_data38 base_type; + typedef mpl::vector38 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<38> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector38() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector38( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector38(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector38(vector38&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector38(vector38 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector38& + operator=(vector38 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector38& + operator=(vector38&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector38( + vector38 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector38( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector38( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector38& + operator=(vector38 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data39 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data39() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data39(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data39( + vector_data39&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data39( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data39( + vector_data39 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data39& + operator=(vector_data39 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data39 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); + return vector_data39(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data39 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); + return vector_data39(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; + }; + template + struct vector39 + : vector_data39 + , sequence_base > + { + typedef vector39 this_type; + typedef vector_data39 base_type; + typedef mpl::vector39 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<39> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector39() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector39( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector39(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector39(vector39&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector39(vector39 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector39& + operator=(vector39 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector39& + operator=(vector39&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector39( + vector39 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector39( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector39( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector39& + operator=(vector39 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data40 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data40() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data40(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data40( + vector_data40&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data40( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data40( + vector_data40 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data40& + operator=(vector_data40 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data40 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); + return vector_data40(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data40 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); + return vector_data40(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; + }; + template + struct vector40 + : vector_data40 + , sequence_base > + { + typedef vector40 this_type; + typedef vector_data40 base_type; + typedef mpl::vector40 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<40> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector40() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector40( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector40(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector40(vector40&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector40(vector40 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector40& + operator=(vector40 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector40& + operator=(vector40&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector40( + vector40 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector40( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector40( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector40& + operator=(vector40 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp new file mode 100644 index 0000000000..e1d6e0911a --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + + template + struct vector31; + template + struct vector32; + template + struct vector33; + template + struct vector34; + template + struct vector35; + template + struct vector36; + template + struct vector37; + template + struct vector38; + template + struct vector39; + template + struct vector40; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp new file mode 100644 index 0000000000..2d787edfb6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp @@ -0,0 +1,1824 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + template + struct vector_data41 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data41() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data41(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data41( + vector_data41&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data41( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data41( + vector_data41 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data41& + operator=(vector_data41 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data41 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); + return vector_data41(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data41 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); + return vector_data41(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; + }; + template + struct vector41 + : vector_data41 + , sequence_base > + { + typedef vector41 this_type; + typedef vector_data41 base_type; + typedef mpl::vector41 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<41> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector41() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector41( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector41(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector41(vector41&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector41(vector41 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector41& + operator=(vector41 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector41& + operator=(vector41&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector41( + vector41 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector41( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector41( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector41& + operator=(vector41 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data42 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data42() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data42(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data42( + vector_data42&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data42( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data42( + vector_data42 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data42& + operator=(vector_data42 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data42 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); + return vector_data42(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data42 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); + return vector_data42(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; + }; + template + struct vector42 + : vector_data42 + , sequence_base > + { + typedef vector42 this_type; + typedef vector_data42 base_type; + typedef mpl::vector42 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<42> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector42() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector42( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector42(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector42(vector42&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector42(vector42 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector42& + operator=(vector42 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector42& + operator=(vector42&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector42( + vector42 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector42( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector42( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector42& + operator=(vector42 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data43 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data43() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data43(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data43( + vector_data43&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data43( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data43( + vector_data43 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data43& + operator=(vector_data43 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data43 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); + return vector_data43(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data43 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); + return vector_data43(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; + }; + template + struct vector43 + : vector_data43 + , sequence_base > + { + typedef vector43 this_type; + typedef vector_data43 base_type; + typedef mpl::vector43 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<43> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector43() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector43( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector43(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector43(vector43&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector43(vector43 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector43& + operator=(vector43 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector43& + operator=(vector43&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector43( + vector43 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector43( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector43( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector43& + operator=(vector43 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data44 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data44() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data44(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) , m43(std::forward( arg43)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data44( + vector_data44&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) , m43(std::forward( other.m43)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data44( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) , m43(arg43) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data44( + vector_data44 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data44& + operator=(vector_data44 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data44 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); + return vector_data44(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data44 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); + return vector_data44(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; + }; + template + struct vector44 + : vector_data44 + , sequence_base > + { + typedef vector44 this_type; + typedef vector_data44 base_type; + typedef mpl::vector44 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<44> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector44() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector44( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector44(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42) , std::forward( arg43)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector44(vector44&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector44(vector44 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector44& + operator=(vector44 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector44& + operator=(vector44&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); this->m43 = std::forward< T43>(vec.m43); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector44( + vector44 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector44( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector44( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector44& + operator=(vector44 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data45 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data45() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data45(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) , m43(std::forward( arg43)) , m44(std::forward( arg44)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data45( + vector_data45&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) , m43(std::forward( other.m43)) , m44(std::forward( other.m44)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data45( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) , m43(arg43) , m44(arg44) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data45( + vector_data45 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data45& + operator=(vector_data45 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data45 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); + return vector_data45(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data45 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); + return vector_data45(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; + }; + template + struct vector45 + : vector_data45 + , sequence_base > + { + typedef vector45 this_type; + typedef vector_data45 base_type; + typedef mpl::vector45 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<45> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector45() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector45( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector45(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42) , std::forward( arg43) , std::forward( arg44)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector45(vector45&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector45(vector45 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector45& + operator=(vector45 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector45& + operator=(vector45&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); this->m43 = std::forward< T43>(vec.m43); this->m44 = std::forward< T44>(vec.m44); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector45( + vector45 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector45( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector45( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector45& + operator=(vector45 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data46 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data46() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data46(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) , m43(std::forward( arg43)) , m44(std::forward( arg44)) , m45(std::forward( arg45)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data46( + vector_data46&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) , m43(std::forward( other.m43)) , m44(std::forward( other.m44)) , m45(std::forward( other.m45)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data46( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) , m43(arg43) , m44(arg44) , m45(arg45) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data46( + vector_data46 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data46& + operator=(vector_data46 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data46 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); + return vector_data46(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data46 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); + return vector_data46(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; + }; + template + struct vector46 + : vector_data46 + , sequence_base > + { + typedef vector46 this_type; + typedef vector_data46 base_type; + typedef mpl::vector46 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<46> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector46() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector46( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector46(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42) , std::forward( arg43) , std::forward( arg44) , std::forward( arg45)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector46(vector46&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector46(vector46 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector46& + operator=(vector46 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector46& + operator=(vector46&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); this->m43 = std::forward< T43>(vec.m43); this->m44 = std::forward< T44>(vec.m44); this->m45 = std::forward< T45>(vec.m45); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector46( + vector46 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector46( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector46( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector46& + operator=(vector46 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data47 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data47() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data47(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) , m43(std::forward( arg43)) , m44(std::forward( arg44)) , m45(std::forward( arg45)) , m46(std::forward( arg46)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data47( + vector_data47&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) , m43(std::forward( other.m43)) , m44(std::forward( other.m44)) , m45(std::forward( other.m45)) , m46(std::forward( other.m46)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data47( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) , m43(arg43) , m44(arg44) , m45(arg45) , m46(arg46) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data47( + vector_data47 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data47& + operator=(vector_data47 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data47 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); + return vector_data47(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data47 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); + return vector_data47(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; + }; + template + struct vector47 + : vector_data47 + , sequence_base > + { + typedef vector47 this_type; + typedef vector_data47 base_type; + typedef mpl::vector47 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<47> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector47() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector47( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector47(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42) , std::forward( arg43) , std::forward( arg44) , std::forward( arg45) , std::forward( arg46)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector47(vector47&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector47(vector47 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector47& + operator=(vector47 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector47& + operator=(vector47&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); this->m43 = std::forward< T43>(vec.m43); this->m44 = std::forward< T44>(vec.m44); this->m45 = std::forward< T45>(vec.m45); this->m46 = std::forward< T46>(vec.m46); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector47( + vector47 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector47( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector47( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector47& + operator=(vector47 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data48 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data48() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data48(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46 , U47 && arg47 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) , m43(std::forward( arg43)) , m44(std::forward( arg44)) , m45(std::forward( arg45)) , m46(std::forward( arg46)) , m47(std::forward( arg47)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data48( + vector_data48&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) , m43(std::forward( other.m43)) , m44(std::forward( other.m44)) , m45(std::forward( other.m45)) , m46(std::forward( other.m46)) , m47(std::forward( other.m47)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data48( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) , m43(arg43) , m44(arg44) , m45(arg45) , m46(arg46) , m47(arg47) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data48( + vector_data48 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) , m47(other.m47) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data48& + operator=(vector_data48 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data48 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); + return vector_data48(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data48 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); + return vector_data48(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; + }; + template + struct vector48 + : vector_data48 + , sequence_base > + { + typedef vector48 this_type; + typedef vector_data48 base_type; + typedef mpl::vector48 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<48> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector48() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector48( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector48(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46 , U47 && arg47) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42) , std::forward( arg43) , std::forward( arg44) , std::forward( arg45) , std::forward( arg46) , std::forward( arg47)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector48(vector48&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector48(vector48 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector48& + operator=(vector48 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector48& + operator=(vector48&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); this->m43 = std::forward< T43>(vec.m43); this->m44 = std::forward< T44>(vec.m44); this->m45 = std::forward< T45>(vec.m45); this->m46 = std::forward< T46>(vec.m46); this->m47 = std::forward< T47>(vec.m47); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector48( + vector48 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector48( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector48( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector48& + operator=(vector48 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; this->m47 = *i47; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<47>) { return this->m47; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<47>) const { return this->m47; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data49 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data49() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() , m48() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data49(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46 , U47 && arg47 , U48 && arg48 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) , m43(std::forward( arg43)) , m44(std::forward( arg44)) , m45(std::forward( arg45)) , m46(std::forward( arg46)) , m47(std::forward( arg47)) , m48(std::forward( arg48)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data49( + vector_data49&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) , m43(std::forward( other.m43)) , m44(std::forward( other.m44)) , m45(std::forward( other.m45)) , m46(std::forward( other.m46)) , m47(std::forward( other.m47)) , m48(std::forward( other.m48)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data49( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) , m43(arg43) , m44(arg44) , m45(arg45) , m46(arg46) , m47(arg47) , m48(arg48) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data49( + vector_data49 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) , m47(other.m47) , m48(other.m48) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data49& + operator=(vector_data49 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data49 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); + return vector_data49(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data49 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); + return vector_data49(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; T48 m48; + }; + template + struct vector49 + : vector_data49 + , sequence_base > + { + typedef vector49 this_type; + typedef vector_data49 base_type; + typedef mpl::vector49 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<49> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector49() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector49( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47 , arg48) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector49(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46 , U47 && arg47 , U48 && arg48) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42) , std::forward( arg43) , std::forward( arg44) , std::forward( arg45) , std::forward( arg46) , std::forward( arg47) , std::forward( arg48)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector49(vector49&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector49(vector49 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector49& + operator=(vector49 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector49& + operator=(vector49&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); this->m43 = std::forward< T43>(vec.m43); this->m44 = std::forward< T44>(vec.m44); this->m45 = std::forward< T45>(vec.m45); this->m46 = std::forward< T46>(vec.m46); this->m47 = std::forward< T47>(vec.m47); this->m48 = std::forward< T48>(vec.m48); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector49( + vector49 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47 , vec.m48) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector49( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector49( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector49& + operator=(vector49 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; this->m47 = *i47; this->m48 = *i48; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<47>) { return this->m47; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<47>) const { return this->m47; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<48>) { return this->m48; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<48>) const { return this->m48; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + template + struct vector_data50 + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data50() + : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() , m48() , m49() {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data50(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46 , U47 && arg47 , U48 && arg48 , U49 && arg49 + , typename boost::enable_if >::type* = 0 + ) + : m0(std::forward( arg0)) , m1(std::forward( arg1)) , m2(std::forward( arg2)) , m3(std::forward( arg3)) , m4(std::forward( arg4)) , m5(std::forward( arg5)) , m6(std::forward( arg6)) , m7(std::forward( arg7)) , m8(std::forward( arg8)) , m9(std::forward( arg9)) , m10(std::forward( arg10)) , m11(std::forward( arg11)) , m12(std::forward( arg12)) , m13(std::forward( arg13)) , m14(std::forward( arg14)) , m15(std::forward( arg15)) , m16(std::forward( arg16)) , m17(std::forward( arg17)) , m18(std::forward( arg18)) , m19(std::forward( arg19)) , m20(std::forward( arg20)) , m21(std::forward( arg21)) , m22(std::forward( arg22)) , m23(std::forward( arg23)) , m24(std::forward( arg24)) , m25(std::forward( arg25)) , m26(std::forward( arg26)) , m27(std::forward( arg27)) , m28(std::forward( arg28)) , m29(std::forward( arg29)) , m30(std::forward( arg30)) , m31(std::forward( arg31)) , m32(std::forward( arg32)) , m33(std::forward( arg33)) , m34(std::forward( arg34)) , m35(std::forward( arg35)) , m36(std::forward( arg36)) , m37(std::forward( arg37)) , m38(std::forward( arg38)) , m39(std::forward( arg39)) , m40(std::forward( arg40)) , m41(std::forward( arg41)) , m42(std::forward( arg42)) , m43(std::forward( arg43)) , m44(std::forward( arg44)) , m45(std::forward( arg45)) , m46(std::forward( arg46)) , m47(std::forward( arg47)) , m48(std::forward( arg48)) , m49(std::forward( arg49)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data50( + vector_data50&& other) + : m0(std::forward( other.m0)) , m1(std::forward( other.m1)) , m2(std::forward( other.m2)) , m3(std::forward( other.m3)) , m4(std::forward( other.m4)) , m5(std::forward( other.m5)) , m6(std::forward( other.m6)) , m7(std::forward( other.m7)) , m8(std::forward( other.m8)) , m9(std::forward( other.m9)) , m10(std::forward( other.m10)) , m11(std::forward( other.m11)) , m12(std::forward( other.m12)) , m13(std::forward( other.m13)) , m14(std::forward( other.m14)) , m15(std::forward( other.m15)) , m16(std::forward( other.m16)) , m17(std::forward( other.m17)) , m18(std::forward( other.m18)) , m19(std::forward( other.m19)) , m20(std::forward( other.m20)) , m21(std::forward( other.m21)) , m22(std::forward( other.m22)) , m23(std::forward( other.m23)) , m24(std::forward( other.m24)) , m25(std::forward( other.m25)) , m26(std::forward( other.m26)) , m27(std::forward( other.m27)) , m28(std::forward( other.m28)) , m29(std::forward( other.m29)) , m30(std::forward( other.m30)) , m31(std::forward( other.m31)) , m32(std::forward( other.m32)) , m33(std::forward( other.m33)) , m34(std::forward( other.m34)) , m35(std::forward( other.m35)) , m36(std::forward( other.m36)) , m37(std::forward( other.m37)) , m38(std::forward( other.m38)) , m39(std::forward( other.m39)) , m40(std::forward( other.m40)) , m41(std::forward( other.m41)) , m42(std::forward( other.m42)) , m43(std::forward( other.m43)) , m44(std::forward( other.m44)) , m45(std::forward( other.m45)) , m46(std::forward( other.m46)) , m47(std::forward( other.m47)) , m48(std::forward( other.m48)) , m49(std::forward( other.m49)) {} +# endif +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector_data50( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48 , typename detail::call_param::type arg49) + : m0(arg0) , m1(arg1) , m2(arg2) , m3(arg3) , m4(arg4) , m5(arg5) , m6(arg6) , m7(arg7) , m8(arg8) , m9(arg9) , m10(arg10) , m11(arg11) , m12(arg12) , m13(arg13) , m14(arg14) , m15(arg15) , m16(arg16) , m17(arg17) , m18(arg18) , m19(arg19) , m20(arg20) , m21(arg21) , m22(arg22) , m23(arg23) , m24(arg24) , m25(arg25) , m26(arg26) , m27(arg27) , m28(arg28) , m29(arg29) , m30(arg30) , m31(arg31) , m32(arg32) , m33(arg33) , m34(arg34) , m35(arg35) , m36(arg36) , m37(arg37) , m38(arg38) , m39(arg39) , m40(arg40) , m41(arg41) , m42(arg42) , m43(arg43) , m44(arg44) , m45(arg45) , m46(arg46) , m47(arg47) , m48(arg48) , m49(arg49) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data50( + vector_data50 const& other) + : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(other.m29) , m30(other.m30) , m31(other.m31) , m32(other.m32) , m33(other.m33) , m34(other.m34) , m35(other.m35) , m36(other.m36) , m37(other.m37) , m38(other.m38) , m39(other.m39) , m40(other.m40) , m41(other.m41) , m42(other.m42) , m43(other.m43) , m44(other.m44) , m45(other.m45) , m46(other.m46) , m47(other.m47) , m48(other.m48) , m49(other.m49) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_data50& + operator=(vector_data50 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; this->m49 = vec.m49; + return *this; + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data50 + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); typedef typename result_of::next< I48>::type I49; I49 i49 = fusion::next(i48); + return vector_data50(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49); + } + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + static vector_data50 + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); typedef typename result_of::next< I48>::type I49; I49 i49 = fusion::next(i48); + return vector_data50(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49); + } + T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; T48 m48; T49 m49; + }; + template + struct vector50 + : vector_data50 + , sequence_base > + { + typedef vector50 this_type; + typedef vector_data50 base_type; + typedef mpl::vector50 types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<50> size; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector50() {} +# if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector50( + typename detail::call_param::type arg0 , typename detail::call_param::type arg1 , typename detail::call_param::type arg2 , typename detail::call_param::type arg3 , typename detail::call_param::type arg4 , typename detail::call_param::type arg5 , typename detail::call_param::type arg6 , typename detail::call_param::type arg7 , typename detail::call_param::type arg8 , typename detail::call_param::type arg9 , typename detail::call_param::type arg10 , typename detail::call_param::type arg11 , typename detail::call_param::type arg12 , typename detail::call_param::type arg13 , typename detail::call_param::type arg14 , typename detail::call_param::type arg15 , typename detail::call_param::type arg16 , typename detail::call_param::type arg17 , typename detail::call_param::type arg18 , typename detail::call_param::type arg19 , typename detail::call_param::type arg20 , typename detail::call_param::type arg21 , typename detail::call_param::type arg22 , typename detail::call_param::type arg23 , typename detail::call_param::type arg24 , typename detail::call_param::type arg25 , typename detail::call_param::type arg26 , typename detail::call_param::type arg27 , typename detail::call_param::type arg28 , typename detail::call_param::type arg29 , typename detail::call_param::type arg30 , typename detail::call_param::type arg31 , typename detail::call_param::type arg32 , typename detail::call_param::type arg33 , typename detail::call_param::type arg34 , typename detail::call_param::type arg35 , typename detail::call_param::type arg36 , typename detail::call_param::type arg37 , typename detail::call_param::type arg38 , typename detail::call_param::type arg39 , typename detail::call_param::type arg40 , typename detail::call_param::type arg41 , typename detail::call_param::type arg42 , typename detail::call_param::type arg43 , typename detail::call_param::type arg44 , typename detail::call_param::type arg45 , typename detail::call_param::type arg46 , typename detail::call_param::type arg47 , typename detail::call_param::type arg48 , typename detail::call_param::type arg49) + : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19 , arg20 , arg21 , arg22 , arg23 , arg24 , arg25 , arg26 , arg27 , arg28 , arg29 , arg30 , arg31 , arg32 , arg33 , arg34 , arg35 , arg36 , arg37 , arg38 , arg39 , arg40 , arg41 , arg42 , arg43 , arg44 , arg45 , arg46 , arg47 , arg48 , arg49) {} +# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector50(U0 && arg0 , U1 && arg1 , U2 && arg2 , U3 && arg3 , U4 && arg4 , U5 && arg5 , U6 && arg6 , U7 && arg7 , U8 && arg8 , U9 && arg9 , U10 && arg10 , U11 && arg11 , U12 && arg12 , U13 && arg13 , U14 && arg14 , U15 && arg15 , U16 && arg16 , U17 && arg17 , U18 && arg18 , U19 && arg19 , U20 && arg20 , U21 && arg21 , U22 && arg22 , U23 && arg23 , U24 && arg24 , U25 && arg25 , U26 && arg26 , U27 && arg27 , U28 && arg28 , U29 && arg29 , U30 && arg30 , U31 && arg31 , U32 && arg32 , U33 && arg33 , U34 && arg34 , U35 && arg35 , U36 && arg36 , U37 && arg37 , U38 && arg38 , U39 && arg39 , U40 && arg40 , U41 && arg41 , U42 && arg42 , U43 && arg43 , U44 && arg44 , U45 && arg45 , U46 && arg46 , U47 && arg47 , U48 && arg48 , U49 && arg49) + : base_type(std::forward( arg0) , std::forward( arg1) , std::forward( arg2) , std::forward( arg3) , std::forward( arg4) , std::forward( arg5) , std::forward( arg6) , std::forward( arg7) , std::forward( arg8) , std::forward( arg9) , std::forward( arg10) , std::forward( arg11) , std::forward( arg12) , std::forward( arg13) , std::forward( arg14) , std::forward( arg15) , std::forward( arg16) , std::forward( arg17) , std::forward( arg18) , std::forward( arg19) , std::forward( arg20) , std::forward( arg21) , std::forward( arg22) , std::forward( arg23) , std::forward( arg24) , std::forward( arg25) , std::forward( arg26) , std::forward( arg27) , std::forward( arg28) , std::forward( arg29) , std::forward( arg30) , std::forward( arg31) , std::forward( arg32) , std::forward( arg33) , std::forward( arg34) , std::forward( arg35) , std::forward( arg36) , std::forward( arg37) , std::forward( arg38) , std::forward( arg39) , std::forward( arg40) , std::forward( arg41) , std::forward( arg42) , std::forward( arg43) , std::forward( arg44) , std::forward( arg45) , std::forward( arg46) , std::forward( arg47) , std::forward( arg48) , std::forward( arg49)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector50(vector50&& rhs) + : base_type(std::forward(rhs)) {} + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector50(vector50 const& rhs) + : base_type(static_cast(rhs)) {} + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector50& + operator=(vector50 const& vec) + { + base_type::operator=(vec); + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector50& + operator=(vector50&& vec) + { + this->m0 = std::forward< T0>(vec.m0); this->m1 = std::forward< T1>(vec.m1); this->m2 = std::forward< T2>(vec.m2); this->m3 = std::forward< T3>(vec.m3); this->m4 = std::forward< T4>(vec.m4); this->m5 = std::forward< T5>(vec.m5); this->m6 = std::forward< T6>(vec.m6); this->m7 = std::forward< T7>(vec.m7); this->m8 = std::forward< T8>(vec.m8); this->m9 = std::forward< T9>(vec.m9); this->m10 = std::forward< T10>(vec.m10); this->m11 = std::forward< T11>(vec.m11); this->m12 = std::forward< T12>(vec.m12); this->m13 = std::forward< T13>(vec.m13); this->m14 = std::forward< T14>(vec.m14); this->m15 = std::forward< T15>(vec.m15); this->m16 = std::forward< T16>(vec.m16); this->m17 = std::forward< T17>(vec.m17); this->m18 = std::forward< T18>(vec.m18); this->m19 = std::forward< T19>(vec.m19); this->m20 = std::forward< T20>(vec.m20); this->m21 = std::forward< T21>(vec.m21); this->m22 = std::forward< T22>(vec.m22); this->m23 = std::forward< T23>(vec.m23); this->m24 = std::forward< T24>(vec.m24); this->m25 = std::forward< T25>(vec.m25); this->m26 = std::forward< T26>(vec.m26); this->m27 = std::forward< T27>(vec.m27); this->m28 = std::forward< T28>(vec.m28); this->m29 = std::forward< T29>(vec.m29); this->m30 = std::forward< T30>(vec.m30); this->m31 = std::forward< T31>(vec.m31); this->m32 = std::forward< T32>(vec.m32); this->m33 = std::forward< T33>(vec.m33); this->m34 = std::forward< T34>(vec.m34); this->m35 = std::forward< T35>(vec.m35); this->m36 = std::forward< T36>(vec.m36); this->m37 = std::forward< T37>(vec.m37); this->m38 = std::forward< T38>(vec.m38); this->m39 = std::forward< T39>(vec.m39); this->m40 = std::forward< T40>(vec.m40); this->m41 = std::forward< T41>(vec.m41); this->m42 = std::forward< T42>(vec.m42); this->m43 = std::forward< T43>(vec.m43); this->m44 = std::forward< T44>(vec.m44); this->m45 = std::forward< T45>(vec.m45); this->m46 = std::forward< T46>(vec.m46); this->m47 = std::forward< T47>(vec.m47); this->m48 = std::forward< T48>(vec.m48); this->m49 = std::forward< T49>(vec.m49); + return *this; + } +# endif + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector50( + vector50 const& vec) + : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47 , vec.m48 , vec.m49) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector50( + Sequence const& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template +# if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +# endif + BOOST_FUSION_GPU_ENABLED + vector50( + Sequence& seq + , typename boost::enable_if >::type* = 0 + ) + : base_type(base_type::init_from_sequence(seq)) {} + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector50& + operator=(vector50 const& vec) + { + this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23; this->m24 = vec.m24; this->m25 = vec.m25; this->m26 = vec.m26; this->m27 = vec.m27; this->m28 = vec.m28; this->m29 = vec.m29; this->m30 = vec.m30; this->m31 = vec.m31; this->m32 = vec.m32; this->m33 = vec.m33; this->m34 = vec.m34; this->m35 = vec.m35; this->m36 = vec.m36; this->m37 = vec.m37; this->m38 = vec.m38; this->m39 = vec.m39; this->m40 = vec.m40; this->m41 = vec.m41; this->m42 = vec.m42; this->m43 = vec.m43; this->m44 = vec.m44; this->m45 = vec.m45; this->m46 = vec.m46; this->m47 = vec.m47; this->m48 = vec.m48; this->m49 = vec.m49; + return *this; + } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6>::type I7; I7 i7 = fusion::next(i6); typedef typename result_of::next< I7>::type I8; I8 i8 = fusion::next(i7); typedef typename result_of::next< I8>::type I9; I9 i9 = fusion::next(i8); typedef typename result_of::next< I9>::type I10; I10 i10 = fusion::next(i9); typedef typename result_of::next< I10>::type I11; I11 i11 = fusion::next(i10); typedef typename result_of::next< I11>::type I12; I12 i12 = fusion::next(i11); typedef typename result_of::next< I12>::type I13; I13 i13 = fusion::next(i12); typedef typename result_of::next< I13>::type I14; I14 i14 = fusion::next(i13); typedef typename result_of::next< I14>::type I15; I15 i15 = fusion::next(i14); typedef typename result_of::next< I15>::type I16; I16 i16 = fusion::next(i15); typedef typename result_of::next< I16>::type I17; I17 i17 = fusion::next(i16); typedef typename result_of::next< I17>::type I18; I18 i18 = fusion::next(i17); typedef typename result_of::next< I18>::type I19; I19 i19 = fusion::next(i18); typedef typename result_of::next< I19>::type I20; I20 i20 = fusion::next(i19); typedef typename result_of::next< I20>::type I21; I21 i21 = fusion::next(i20); typedef typename result_of::next< I21>::type I22; I22 i22 = fusion::next(i21); typedef typename result_of::next< I22>::type I23; I23 i23 = fusion::next(i22); typedef typename result_of::next< I23>::type I24; I24 i24 = fusion::next(i23); typedef typename result_of::next< I24>::type I25; I25 i25 = fusion::next(i24); typedef typename result_of::next< I25>::type I26; I26 i26 = fusion::next(i25); typedef typename result_of::next< I26>::type I27; I27 i27 = fusion::next(i26); typedef typename result_of::next< I27>::type I28; I28 i28 = fusion::next(i27); typedef typename result_of::next< I28>::type I29; I29 i29 = fusion::next(i28); typedef typename result_of::next< I29>::type I30; I30 i30 = fusion::next(i29); typedef typename result_of::next< I30>::type I31; I31 i31 = fusion::next(i30); typedef typename result_of::next< I31>::type I32; I32 i32 = fusion::next(i31); typedef typename result_of::next< I32>::type I33; I33 i33 = fusion::next(i32); typedef typename result_of::next< I33>::type I34; I34 i34 = fusion::next(i33); typedef typename result_of::next< I34>::type I35; I35 i35 = fusion::next(i34); typedef typename result_of::next< I35>::type I36; I36 i36 = fusion::next(i35); typedef typename result_of::next< I36>::type I37; I37 i37 = fusion::next(i36); typedef typename result_of::next< I37>::type I38; I38 i38 = fusion::next(i37); typedef typename result_of::next< I38>::type I39; I39 i39 = fusion::next(i38); typedef typename result_of::next< I39>::type I40; I40 i40 = fusion::next(i39); typedef typename result_of::next< I40>::type I41; I41 i41 = fusion::next(i40); typedef typename result_of::next< I41>::type I42; I42 i42 = fusion::next(i41); typedef typename result_of::next< I42>::type I43; I43 i43 = fusion::next(i42); typedef typename result_of::next< I43>::type I44; I44 i44 = fusion::next(i43); typedef typename result_of::next< I44>::type I45; I45 i45 = fusion::next(i44); typedef typename result_of::next< I45>::type I46; I46 i46 = fusion::next(i45); typedef typename result_of::next< I46>::type I47; I47 i47 = fusion::next(i46); typedef typename result_of::next< I47>::type I48; I48 i48 = fusion::next(i47); typedef typename result_of::next< I48>::type I49; I49 i49 = fusion::next(i48); + this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27; this->m28 = *i28; this->m29 = *i29; this->m30 = *i30; this->m31 = *i31; this->m32 = *i32; this->m33 = *i33; this->m34 = *i34; this->m35 = *i35; this->m36 = *i36; this->m37 = *i37; this->m38 = *i38; this->m39 = *i39; this->m40 = *i40; this->m41 = *i41; this->m42 = *i42; this->m43 = *i43; this->m44 = *i44; this->m45 = *i45; this->m46 = *i46; this->m47 = *i47; this->m48 = *i48; this->m49 = *i49; + return *this; + } + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<0>) { return this->m0; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<0>) const { return this->m0; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<1>) { return this->m1; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<1>) const { return this->m1; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<2>) { return this->m2; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<2>) const { return this->m2; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<3>) { return this->m3; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<3>) const { return this->m3; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<4>) { return this->m4; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<4>) const { return this->m4; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<5>) { return this->m5; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<5>) const { return this->m5; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<6>) { return this->m6; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<6>) const { return this->m6; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<7>) { return this->m7; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<7>) const { return this->m7; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<8>) { return this->m8; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<8>) const { return this->m8; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<9>) { return this->m9; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<9>) const { return this->m9; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<10>) { return this->m10; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<10>) const { return this->m10; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<11>) { return this->m11; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<11>) const { return this->m11; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<12>) { return this->m12; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<12>) const { return this->m12; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<13>) { return this->m13; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<13>) const { return this->m13; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<14>) { return this->m14; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<14>) const { return this->m14; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<15>) { return this->m15; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<15>) const { return this->m15; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<16>) { return this->m16; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<16>) const { return this->m16; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<17>) { return this->m17; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<17>) const { return this->m17; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<18>) { return this->m18; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<18>) const { return this->m18; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<19>) { return this->m19; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<19>) const { return this->m19; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<20>) { return this->m20; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<20>) const { return this->m20; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<21>) { return this->m21; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<21>) const { return this->m21; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<22>) { return this->m22; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<22>) const { return this->m22; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<23>) { return this->m23; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<23>) const { return this->m23; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<24>) { return this->m24; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<24>) const { return this->m24; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<25>) { return this->m25; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<25>) const { return this->m25; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<26>) { return this->m26; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<26>) const { return this->m26; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<27>) { return this->m27; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<27>) const { return this->m27; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<28>) { return this->m28; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<28>) const { return this->m28; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<29>) { return this->m29; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<29>) const { return this->m29; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<30>) { return this->m30; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<30>) const { return this->m30; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<31>) { return this->m31; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<31>) const { return this->m31; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<32>) { return this->m32; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<32>) const { return this->m32; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<33>) { return this->m33; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<33>) const { return this->m33; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<34>) { return this->m34; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<34>) const { return this->m34; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<35>) { return this->m35; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<35>) const { return this->m35; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<36>) { return this->m36; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<36>) const { return this->m36; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<37>) { return this->m37; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<37>) const { return this->m37; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<38>) { return this->m38; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<38>) const { return this->m38; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<39>) { return this->m39; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<39>) const { return this->m39; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<40>) { return this->m40; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<40>) const { return this->m40; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<41>) { return this->m41; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<41>) const { return this->m41; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<42>) { return this->m42; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<42>) const { return this->m42; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<43>) { return this->m43; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<43>) const { return this->m43; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<44>) { return this->m44; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<44>) const { return this->m44; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<45>) { return this->m45; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<45>) const { return this->m45; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<46>) { return this->m46; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<46>) const { return this->m46; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<47>) { return this->m47; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<47>) const { return this->m47; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<48>) { return this->m48; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<48>) const { return this->m48; } BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type at_impl(mpl::int_<49>) { return this->m49; } BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED typename add_reference::type>::type at_impl(mpl::int_<49>) const { return this->m49; } + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp new file mode 100644 index 0000000000..6829e9b50f --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + + template + struct vector41; + template + struct vector42; + template + struct vector43; + template + struct vector44; + template + struct vector45; + template + struct vector46; + template + struct vector47; + template + struct vector48; + template + struct vector49; + template + struct vector50; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp new file mode 100644 index 0000000000..42c3f5bc6c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_VECTOR_SIZE <= 10 +#include +#elif FUSION_MAX_VECTOR_SIZE <= 20 +#include +#elif FUSION_MAX_VECTOR_SIZE <= 30 +#include +#elif FUSION_MAX_VECTOR_SIZE <= 40 +#include +#elif FUSION_MAX_VECTOR_SIZE <= 50 +#include +#else +#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers" +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp new file mode 100644 index 0000000000..97f64fa359 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ + > + struct vector; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp new file mode 100644 index 0000000000..8d4ea992d1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ + > + struct vector; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp new file mode 100644 index 0000000000..03f289e9c9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ + > + struct vector; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp new file mode 100644 index 0000000000..55c1097a75 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ + > + struct vector; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp new file mode 100644 index 0000000000..621f1606bf --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ , typename T40 = void_ , typename T41 = void_ , typename T42 = void_ , typename T43 = void_ , typename T44 = void_ , typename T45 = void_ , typename T46 = void_ , typename T47 = void_ , typename T48 = void_ , typename T49 = void_ + > + struct vector; +}} diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp new file mode 100644 index 0000000000..44feb6002c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp @@ -0,0 +1,34 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VALUE_AT_IMPL_05052005_0232) +#define FUSION_VALUE_AT_IMPL_05052005_0232 + +#include +#include + +namespace boost { namespace fusion +{ + struct vector_tag; + + namespace extension + { + template + struct value_at_impl; + + template <> + struct value_at_impl + { + template + struct apply + { + typedef typename mpl::at::type type; + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector10.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector10.hpp new file mode 100644 index 0000000000..58a31ddec3 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector10.hpp @@ -0,0 +1,105 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR10_05042005_0257) +#define FUSION_VECTOR10_05042005_0257 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + + template + struct vector0 : sequence_base > + { + typedef mpl::vector0<> types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; // this gets picked up by MPL + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_<0> size; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector0() BOOST_NOEXCEPT {} + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector0(Sequence const& /*seq*/) BOOST_NOEXCEPT + {} + }; +}} + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector10.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + +#define FUSION_HASH # +// expand vector1 to vector10 +#define BOOST_PP_FILENAME_1 +#define BOOST_PP_ITERATION_LIMITS (1, 10) +#include BOOST_PP_ITERATE() +#undef FUSION_HASH +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp new file mode 100644 index 0000000000..d221faece2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp @@ -0,0 +1,64 @@ +#ifndef BOOST_PP_IS_ITERATING +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_VECTOR10_FWD_HPP_INCLUDED) +#define BOOST_FUSION_VECTOR10_FWD_HPP_INCLUDED + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct vector0; +}} + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector10_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + // expand vector1 to vector10 + #define BOOST_PP_FILENAME_1 + #define BOOST_PP_ITERATION_LIMITS (1, 10) + #include BOOST_PP_ITERATE() +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + +#else + + template + struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION()); + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector20.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector20.hpp new file mode 100644 index 0000000000..89f644c5a4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector20.hpp @@ -0,0 +1,81 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR20_05052005_0205) +#define FUSION_VECTOR20_05052005_0205 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector20.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + +#define FUSION_HASH # +// expand vector11 to vector20 +#define BOOST_PP_FILENAME_1 +#define BOOST_PP_ITERATION_LIMITS (11, 20) +#include BOOST_PP_ITERATE() +#undef FUSION_HASH +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp new file mode 100644 index 0000000000..e69b59f4a6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp @@ -0,0 +1,59 @@ +#ifndef BOOST_PP_IS_ITERATING +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_VECTOR20_FWD_HPP_INCLUDED) +#define BOOST_FUSION_VECTOR20_FWD_HPP_INCLUDED + +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector20_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + // expand vector11 to vector20 + #define BOOST_PP_FILENAME_1 + #define BOOST_PP_ITERATION_LIMITS (11, 20) + #include BOOST_PP_ITERATE() +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + +#else + + template + struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION()); + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector30.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector30.hpp new file mode 100644 index 0000000000..ad838c9ac6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector30.hpp @@ -0,0 +1,80 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR30_05052005_0206) +#define FUSION_VECTOR30_05052005_0206 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector30.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + +#define FUSION_HASH # +// expand vector21 to vector30 +#define BOOST_PP_FILENAME_1 +#define BOOST_PP_ITERATION_LIMITS (21, 30) +#include BOOST_PP_ITERATE() +#undef FUSION_HASH +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp new file mode 100644 index 0000000000..e799b09657 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp @@ -0,0 +1,59 @@ +#ifndef BOOST_PP_IS_ITERATING +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_VECTOR30_FWD_HPP_INCLUDED) +#define BOOST_FUSION_VECTOR30_FWD_HPP_INCLUDED + +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector30_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + // expand vector21 to vector30 + #define BOOST_PP_FILENAME_1 + #define BOOST_PP_ITERATION_LIMITS (21, 30) + #include BOOST_PP_ITERATE() +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + +#else + + template + struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION()); + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector40.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector40.hpp new file mode 100644 index 0000000000..10770907eb --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector40.hpp @@ -0,0 +1,81 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR40_05052005_0208) +#define FUSION_VECTOR40_05052005_0208 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector40.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + +#define FUSION_HASH # +// expand vector31 to vector40 +#define BOOST_PP_FILENAME_1 +#define BOOST_PP_ITERATION_LIMITS (31, 40) +#include BOOST_PP_ITERATE() +#undef FUSION_HASH +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp new file mode 100644 index 0000000000..790dd76135 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp @@ -0,0 +1,59 @@ +#ifndef BOOST_PP_IS_ITERATING +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_VECTOR40_FWD_HPP_INCLUDED) +#define BOOST_FUSION_VECTOR40_FWD_HPP_INCLUDED + +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector40_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + // expand vector31 to vector40 + #define BOOST_PP_FILENAME_1 + #define BOOST_PP_ITERATION_LIMITS (31, 40) + #include BOOST_PP_ITERATE() +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + +#else + + template + struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION()); + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector50.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector50.hpp new file mode 100644 index 0000000000..6c0b48bbc4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector50.hpp @@ -0,0 +1,80 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR50_05052005_0207) +#define FUSION_VECTOR50_05052005_0207 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector50.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct vector_tag; + struct fusion_sequence_tag; + struct random_access_traversal_tag; + +#define FUSION_HASH # +// expand vector41 to vector50 +#define BOOST_PP_FILENAME_1 +#define BOOST_PP_ITERATION_LIMITS (41, 50) +#include BOOST_PP_ITERATE() +#undef FUSION_HASH +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp new file mode 100644 index 0000000000..4ec5e2812c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp @@ -0,0 +1,59 @@ +#ifndef BOOST_PP_IS_ITERATING +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_VECTOR50_FWD_HPP_INCLUDED) +#define BOOST_FUSION_VECTOR50_FWD_HPP_INCLUDED + +#include +#include +#include +#include + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector50_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2011 Eric Niebler + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + // expand vector41 to vector50 + #define BOOST_PP_FILENAME_1 + #define BOOST_PP_ITERATION_LIMITS (41, 50) + #include BOOST_PP_ITERATE() +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif + +#else + + template + struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION()); + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp new file mode 100644 index 0000000000..f894b1a699 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp @@ -0,0 +1,66 @@ +/*============================================================================= + Copyright (c) 1999-2003 Jaakko Jarvi + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR_FORWARD_07072005_0125) +#define FUSION_VECTOR_FORWARD_07072005_0125 + +#include +#include +#include + +#include +#if (FUSION_MAX_VECTOR_SIZE > 10) +#include +#endif +#if (FUSION_MAX_VECTOR_SIZE > 20) +#include +#endif +#if (FUSION_MAX_VECTOR_SIZE > 30) +#include +#endif +#if (FUSION_MAX_VECTOR_SIZE > 40) +#include +#endif + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vvector" FUSION_MAX_VECTOR_SIZE_STR "_fwd.hpp") +#endif + +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct void_; + + template < + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( + FUSION_MAX_VECTOR_SIZE, typename T, void_) + > + struct vector; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector_n.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector_n.hpp new file mode 100644 index 0000000000..932ce36c7d --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/cpp03/vector_n.hpp @@ -0,0 +1,354 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +// No include guard. This file is meant to be included many times + +#if !defined(FUSION_MACRO_05042005) +#define FUSION_MACRO_05042005 + +#define FUSION_VECTOR_CTOR_DEFAULT_INIT(z, n, _) \ + m##n() + +#define FUSION_VECTOR_CTOR_INIT(z, n, _) \ + m##n(_##n) + +#define FUSION_VECTOR_MEMBER_CTOR_INIT(z, n, _) \ + m##n(other.m##n) + +#define FUSION_VECTOR_CTOR_FORWARD(z, n, _) \ + m##n(BOOST_FUSION_FWD_ELEM(T##n, other.m##n)) + +#define FUSION_VECTOR_CTOR_ARG_FWD(z, n, _) \ + m##n(BOOST_FUSION_FWD_ELEM(U##n, _##n)) + +#define FUSION_VECTOR_MEMBER_DECL(z, n, _) \ + T##n m##n; + +#define FUSION_VECTOR_MEMBER_FORWARD(z, n, _) \ + BOOST_FUSION_FWD_ELEM(U##n, _##n) + +#define FUSION_VECTOR_MEMBER_ASSIGN(z, n, _) \ + this->BOOST_PP_CAT(m, n) = vec.BOOST_PP_CAT(m, n); + +#define FUSION_VECTOR_MEMBER_DEREF_ASSIGN(z, n, _) \ + this->BOOST_PP_CAT(m, n) = *BOOST_PP_CAT(i, n); + +#define FUSION_VECTOR_MEMBER_MOVE(z, n, _) \ + this->BOOST_PP_CAT(m, n) = std::forward< \ + BOOST_PP_CAT(T, n)>(vec.BOOST_PP_CAT(m, n)); + +#define FUSION_VECTOR_MEMBER_AT_IMPL(z, n, _) \ + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \ + typename add_reference::type \ + at_impl(mpl::int_) { return this->m##n; } \ + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \ + typename add_reference::type>::type \ + at_impl(mpl::int_) const { return this->m##n; } + +#define FUSION_VECTOR_MEMBER_ITER_DECL_VAR(z, n, _) \ + typedef typename result_of::next< \ + BOOST_PP_CAT(I, BOOST_PP_DEC(n))>::type BOOST_PP_CAT(I, n); \ + BOOST_PP_CAT(I, n) BOOST_PP_CAT(i, n) \ + = fusion::next(BOOST_PP_CAT(i, BOOST_PP_DEC(n))); + +#endif + +#define N BOOST_PP_ITERATION() + + template + struct BOOST_PP_CAT(vector_data, N) + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector_data, N)() + : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_DEFAULT_INIT, _) {} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#endif +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ + (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) + template +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector_data, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, U, && arg) + , typename boost::enable_if >::type* /*dummy*/ = 0 + ) + : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_ARG_FWD, arg) {} + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector_data, N)( + BOOST_PP_CAT(vector_data, N)&& other) + : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_FORWARD, arg) {} +#endif +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH endif +#endif + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector_data, N)( + BOOST_PP_ENUM_BINARY_PARAMS( + N, typename detail::call_param::type arg)) + : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_INIT, arg) {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector_data, N)( + BOOST_PP_CAT(vector_data, N) const& other) + : BOOST_PP_ENUM(N, FUSION_VECTOR_MEMBER_CTOR_INIT, _) {} + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector_data, N)& + operator=(BOOST_PP_CAT(vector_data, N) const& vec) + { + BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_ASSIGN, _) + return *this; + } + + template +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED + static BOOST_PP_CAT(vector_data, N) + init_from_sequence(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_VECTOR_MEMBER_ITER_DECL_VAR, _) + return BOOST_PP_CAT(vector_data, N)(BOOST_PP_ENUM_PARAMS(N, *i)); + } + + template +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED + static BOOST_PP_CAT(vector_data, N) + init_from_sequence(Sequence& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_VECTOR_MEMBER_ITER_DECL_VAR, _) + return BOOST_PP_CAT(vector_data, N)(BOOST_PP_ENUM_PARAMS(N, *i)); + } + + BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_DECL, _) + }; + + template + struct BOOST_PP_CAT(vector, N) + : BOOST_PP_CAT(vector_data, N) + , sequence_base > + { + typedef BOOST_PP_CAT(vector, N) this_type; + typedef BOOST_PP_CAT(vector_data, N) base_type; + typedef mpl::BOOST_PP_CAT(vector, N) types; + typedef vector_tag fusion_tag; + typedef fusion_sequence_tag tag; // this gets picked up by MPL + typedef mpl::false_ is_view; + typedef random_access_traversal_tag category; + typedef mpl::int_ size; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)() {} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED +#if (N == 1) + explicit +#endif + BOOST_PP_CAT(vector, N)( + BOOST_PP_ENUM_BINARY_PARAMS( + N, typename detail::call_param::type arg)) + : base_type(BOOST_PP_ENUM_PARAMS(N, arg)) {} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#endif +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ + (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) + template +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED +#if (N == 1) + explicit + BOOST_PP_CAT(vector, N)(U0&& _0 + , typename boost::enable_if >::type* /*dummy*/ = 0 + ) + : base_type(BOOST_FUSION_FWD_ELEM(U0, _0)) {} +#else + BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, U, && arg)) + : base_type(BOOST_PP_ENUM(N, FUSION_VECTOR_MEMBER_FORWARD, arg)) {} +#endif + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)(BOOST_PP_CAT(vector, N)&& rhs) + : base_type(std::forward(rhs)) {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)(BOOST_PP_CAT(vector, N) const& rhs) + : base_type(static_cast(rhs)) {} + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)& + operator=(BOOST_PP_CAT(vector, N) const& vec) + { + base_type::operator=(vec); + return *this; + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)& + operator=(BOOST_PP_CAT(vector, N)&& vec) + { + BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_MOVE, _) + return *this; + } +#endif +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH endif +#endif + + template +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)( + BOOST_PP_CAT(vector, N) const& vec) + : base_type(BOOST_PP_ENUM_PARAMS(N, vec.m)) {} + + template +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)( + Sequence const& seq + , typename boost::enable_if >::type* = 0 +#if (N == 1) + , typename boost::disable_if >::type* /*dummy*/ = 0 +#endif + ) + : base_type(base_type::init_from_sequence(seq)) {} + + template +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +FUSION_HASH if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +FUSION_HASH endif +#else +#if !defined(BOOST_CLANG) + BOOST_CXX14_CONSTEXPR +#endif +#endif + BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)( + Sequence& seq + , typename boost::enable_if >::type* = 0 +#if (N == 1) + , typename boost::disable_if >::type* /*dummy*/ = 0 +#endif + ) + : base_type(base_type::init_from_sequence(seq)) {} + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_PP_CAT(vector, N)& + operator=(BOOST_PP_CAT(vector, N) const& vec) + { + BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_ASSIGN, _) + return *this; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::disable_if, this_type&>::type + operator=(Sequence const& seq) + { + typedef typename result_of::begin::type I0; + I0 i0 = fusion::begin(seq); + BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_VECTOR_MEMBER_ITER_DECL_VAR, _) + BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_DEREF_ASSIGN, _) + return *this; + } + + BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_AT_IMPL, _) + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type + at_impl(I) + { + return this->at_impl(mpl::int_()); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename add_reference::type>::type>::type + at_impl(I) const + { + return this->at_impl(mpl::int_()); + } + }; + +#undef N diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/deref_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/deref_impl.hpp new file mode 100644 index 0000000000..c85bb82b3b --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/deref_impl.hpp @@ -0,0 +1,54 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DEREF_IMPL_05042005_1037) +#define FUSION_DEREF_IMPL_05042005_1037 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + + namespace extension + { + template + struct deref_impl; + + template <> + struct deref_impl + { + template + struct apply + { + typedef typename Iterator::vector vector; + typedef typename Iterator::index index; + typedef typename value_at_impl::template apply::type element; + + typedef typename + mpl::if_< + is_const + , typename fusion::detail::cref_result::type + , typename fusion::detail::ref_result::type + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return i.vec.at_impl(index()); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/distance_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/distance_impl.hpp new file mode 100644 index 0000000000..4c2a1226d6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/distance_impl.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DISTANCE_IMPL_09172005_0751) +#define FUSION_DISTANCE_IMPL_09172005_0751 + +#include +#include + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + + namespace extension + { + template + struct distance_impl; + + template <> + struct distance_impl + { + template + struct apply : mpl::minus + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename mpl::minus< + typename Last::index, typename First::index>::type + call(First const&, Last const&) + { + typedef typename mpl::minus< + typename Last::index, typename First::index>::type + result; + return result(); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/end_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/end_impl.hpp new file mode 100644 index 0000000000..a77ef644e6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/end_impl.hpp @@ -0,0 +1,42 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_END_IMPL_05042005_1142) +#define FUSION_END_IMPL_05042005_1142 + +#include +#include + +namespace boost { namespace fusion +{ + struct vector_tag; + + namespace extension + { + template + struct end_impl; + + template <> + struct end_impl + { + template + struct apply + { + typedef typename Sequence::size size; + typedef vector_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& v) + { + return type(v); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/equal_to_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/equal_to_impl.hpp new file mode 100644 index 0000000000..18b3e4a31e --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/equal_to_impl.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_EQUAL_TO_IMPL_05052005_1215) +#define FUSION_EQUAL_TO_IMPL_05052005_1215 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + + namespace extension + { + template + struct equal_to_impl; + + template <> + struct equal_to_impl + { + template + struct apply + : is_same< + typename I1::identity + , typename I2::identity + > + { + }; + }; + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/next_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/next_impl.hpp new file mode 100644 index 0000000000..28408205d8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/next_impl.hpp @@ -0,0 +1,45 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_NEXT_IMPL_05042005_1058) +#define FUSION_NEXT_IMPL_05042005_1058 + +#include +#include + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + template + struct vector_iterator; + + namespace extension + { + template + struct next_impl; + + template <> + struct next_impl + { + template + struct apply + { + typedef typename Iterator::vector vector; + typedef typename Iterator::index index; + typedef vector_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.vec); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/prior_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/prior_impl.hpp new file mode 100644 index 0000000000..4d040d3959 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/prior_impl.hpp @@ -0,0 +1,45 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_PRIOR_IMPL_05042005_1145) +#define FUSION_PRIOR_IMPL_05042005_1145 + +#include +#include + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + template + struct vector_iterator; + + namespace extension + { + template + struct prior_impl; + + template <> + struct prior_impl + { + template + struct apply + { + typedef typename Iterator::vector vector; + typedef typename Iterator::index index; + typedef vector_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.vec); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/value_at_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/value_at_impl.hpp new file mode 100644 index 0000000000..f29c0e14e5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/value_at_impl.hpp @@ -0,0 +1,60 @@ +/*============================================================================= + Copyright (c) 2014,2018 Kohei Takahashi + + Distributed under the 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 FUSION_VALUE_AT_IMPL_16122014_1641 +#define FUSION_VALUE_AT_IMPL_16122014_1641 + +#include +#include + +/////////////////////////////////////////////////////////////////////////////// +// Without variadics, we will use the PP version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +#include +#include +#include + +namespace boost { namespace fusion +{ + struct vector_tag; + + namespace vector_detail + { + template + struct store; + + template + static inline BOOST_FUSION_GPU_ENABLED + mpl::identity value_at_impl(store const volatile*); + } + + namespace extension + { + template + struct value_at_impl; + + template <> + struct value_at_impl + { + template + struct apply : BOOST_FUSION_DECLTYPE_N3031(( + vector_detail::value_at_impl(boost::declval()) + )) + {}; + }; + } +}} + +#endif +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/detail/value_of_impl.hpp b/3rdparty/boost/boost/fusion/container/vector/detail/value_of_impl.hpp new file mode 100644 index 0000000000..d67ab3fcc2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/detail/value_of_impl.hpp @@ -0,0 +1,36 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VALUE_OF_IMPL_05052005_1128) +#define FUSION_VALUE_OF_IMPL_05052005_1128 + +#include +#include + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + + namespace extension + { + template + struct value_of_impl; + + template <> + struct value_of_impl + { + template + struct apply + { + typedef typename Iterator::vector vector; + typedef typename Iterator::index index; + typedef typename value_at_impl::template apply::type type; + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/container/vector/vector_fwd.hpp b/3rdparty/boost/boost/fusion/container/vector/vector_fwd.hpp new file mode 100644 index 0000000000..dcb0a0fc0c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/vector_fwd.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2014-2015 Kohei Takahashi + + Distributed under the 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 FUSION_VECTOR_FORWARD_11052014_1626 +#define FUSION_VECTOR_FORWARD_11052014_1626 + +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////////// +// With no variadics, we will use the C++03 version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) +# include +#else + +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +#include +#include + +namespace boost { namespace fusion +{ + template + struct vector; + +#define FUSION_VECTOR_N_ALIASES(z, N, d) \ + template \ + using BOOST_PP_CAT(vector, N) = vector; + + BOOST_PP_REPEAT(51, FUSION_VECTOR_N_ALIASES, ~) + +#undef FUSION_VECTOR_N_ALIASES +}} + +#endif +#endif + diff --git a/3rdparty/boost/boost/fusion/container/vector/vector_iterator.hpp b/3rdparty/boost/boost/fusion/container/vector/vector_iterator.hpp new file mode 100644 index 0000000000..0e04b3452c --- /dev/null +++ b/3rdparty/boost/boost/fusion/container/vector/vector_iterator.hpp @@ -0,0 +1,65 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VECTOR_ITERATOR_05042005_0635) +#define FUSION_VECTOR_ITERATOR_05042005_0635 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct vector_iterator_tag; + struct random_access_traversal_tag; + + template + struct vector_iterator_identity; + + template + struct vector_iterator : iterator_base > + { + typedef mpl::int_ index; + typedef Vector vector; + typedef vector_iterator_tag fusion_tag; + typedef random_access_traversal_tag category; + typedef vector_iterator_identity< + typename add_const::type, N> identity; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_iterator(Vector& in_vec) + : vec(in_vec) {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + vector_iterator(vector_iterator const& rhs) + : vec(rhs.vec) {} + + Vector& vec; + + // silence MSVC warning C4512: assignment operator could not be generated + BOOST_DELETED_FUNCTION(vector_iterator& operator= (vector_iterator const&)) + }; +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::vector_iterator > + { }; +} +#endif + +#endif + diff --git a/3rdparty/boost/boost/fusion/iterator/advance.hpp b/3rdparty/boost/boost/fusion/iterator/advance.hpp new file mode 100644 index 0000000000..f81596a7a5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/advance.hpp @@ -0,0 +1,95 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ADVANCE_09172005_1146) +#define FUSION_ADVANCE_09172005_1146 + +#include +#include +#include + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct random_access_traversal_tag; + + // Special tags: + struct iterator_facade_tag; // iterator facade tag + struct boost_array_iterator_tag; // boost::array iterator tag + struct mpl_iterator_tag; // mpl sequence iterator tag + struct std_pair_iterator_tag; // std::pair iterator tag + + namespace extension + { + template + struct advance_impl + { + // default implementation + template + struct apply : + mpl::if_c< + (N::value > 0) + , advance_detail::forward + , advance_detail::backward + >::type + { + BOOST_MPL_ASSERT_NOT((traits::is_random_access)); + }; + }; + + template <> + struct advance_impl + { + template + struct apply : Iterator::template advance {}; + }; + + template <> + struct advance_impl; + + template <> + struct advance_impl; + + template <> + struct advance_impl; + } + + namespace result_of + { + template + struct advance_c + : extension::advance_impl::type>::template apply > + {}; + + template + struct advance + : extension::advance_impl::type>::template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::advance_c::type const + advance_c(Iterator const& i) + { + return result_of::advance_c::call(i); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::advance::type const + advance(Iterator const& i) + { + return result_of::advance::call(i); + } + +}} // namespace boost::fusion + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/deref.hpp b/3rdparty/boost/boost/fusion/iterator/deref.hpp new file mode 100644 index 0000000000..c31962cb09 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/deref.hpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DEREF_05042005_1019) +#define FUSION_DEREF_05042005_1019 + +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct iterator_facade_tag; // iterator facade tag + struct boost_array_iterator_tag; // boost::array iterator tag + struct mpl_iterator_tag; // mpl sequence iterator tag + struct std_pair_iterator_tag; // std::pair iterator tag + + namespace extension + { + template + struct deref_impl + { + template + struct apply {}; + }; + + template <> + struct deref_impl + { + template + struct apply : Iterator::template deref {}; + }; + + template <> + struct deref_impl; + + template <> + struct deref_impl; + + template <> + struct deref_impl; + } + + namespace result_of + { + template + struct deref + : extension::deref_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::deref::type + deref(Iterator const& i) + { + typedef result_of::deref deref_meta; + return deref_meta::call(i); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::deref::type + operator*(iterator_base const& i) + { + return fusion::deref(i.cast()); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/deref_data.hpp b/3rdparty/boost/boost/fusion/iterator/deref_data.hpp new file mode 100644 index 0000000000..65a43324f9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/deref_data.hpp @@ -0,0 +1,51 @@ +/*============================================================================= + Copyright (c) 2009 Christopher Schmidt + + Distributed under the 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_FUSION_ITERATOR_DEREF_DATA_HPP +#define BOOST_FUSION_ITERATOR_DEREF_DATA_HPP + +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_facade_tag; + + namespace extension + { + template + struct deref_data_impl; + + template <> + struct deref_data_impl + { + template + struct apply + : It::template deref_data + {}; + }; + } + + namespace result_of + { + template + struct deref_data + : extension::deref_data_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::deref_data::type + deref_data(It const& it) + { + return result_of::deref_data::call(it); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/detail/adapt_deref_traits.hpp b/3rdparty/boost/boost/fusion/iterator/detail/adapt_deref_traits.hpp new file mode 100644 index 0000000000..bee0934f57 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/adapt_deref_traits.hpp @@ -0,0 +1,36 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ADAPT_DEREF_TRAITS_05062005_0900) +#define FUSION_ADAPT_DEREF_TRAITS_05062005_0900 + +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + struct adapt_deref_traits + { + template + struct apply + { + typedef typename + result_of::deref::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return *i.first; + } + }; + }; +}}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/iterator/detail/adapt_value_traits.hpp b/3rdparty/boost/boost/fusion/iterator/detail/adapt_value_traits.hpp new file mode 100644 index 0000000000..e27a2f90fd --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/adapt_value_traits.hpp @@ -0,0 +1,29 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ADAPT_VALUE_TRAITS_05062005_0859) +#define FUSION_ADAPT_VALUE_TRAITS_05062005_0859 + +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + struct adapt_value_traits + { + template + struct apply + { + typedef typename + result_of::value_of::type + type; + }; + }; +}}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/iterator/detail/advance.hpp b/3rdparty/boost/boost/fusion/iterator/detail/advance.hpp new file mode 100644 index 0000000000..7eb3bbbdbd --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/advance.hpp @@ -0,0 +1,107 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ADVANCE_09172005_1149) +#define FUSION_ADVANCE_09172005_1149 + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace advance_detail +{ + // Default advance implementation, perform next(i) + // or prior(i) N times. + + template + struct forward; + + template + struct next_forward + { + typedef typename + forward< + typename result_of::next::type + , N-1 + >::type + type; + }; + + template + struct forward + { + typedef typename + mpl::eval_if_c< + (N == 0) + , mpl::identity + , next_forward + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type const& + call(type const& i) + { + return i; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(I const& i) + { + return call(fusion::next(i)); + } + }; + + template + struct backward; + + template + struct next_backward + { + typedef typename + backward< + typename result_of::prior::type + , N+1 + >::type + type; + }; + + template + struct backward + { + typedef typename + mpl::eval_if_c< + (N == 0) + , mpl::identity + , next_backward + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type const& + call(type const& i) + { + return i; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(I const& i) + { + return call(fusion::prior(i)); + } + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/detail/distance.hpp b/3rdparty/boost/boost/fusion/iterator/detail/distance.hpp new file mode 100644 index 0000000000..698490263b --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/distance.hpp @@ -0,0 +1,66 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DISTANCE_09172005_0730) +#define FUSION_DISTANCE_09172005_0730 + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace distance_detail +{ + // Default distance implementation, linear + // search for the Last iterator. + + template + struct linear_distance; + + template + struct next_distance + { + typedef typename + mpl::next< + typename linear_distance< + typename result_of::next::type + , Last + >::type + >::type + type; + }; + + template + struct linear_distance + : mpl::eval_if< + result_of::equal_to + , mpl::identity > + , next_distance + >::type + { + typedef typename + mpl::eval_if< + result_of::equal_to + , mpl::identity > + , next_distance + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const&, Last const&) + { + return type(); + } + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/detail/segment_sequence.hpp b/3rdparty/boost/boost/fusion/iterator/detail/segment_sequence.hpp new file mode 100644 index 0000000000..8b8d5c13f4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/segment_sequence.hpp @@ -0,0 +1,73 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_SEQUENCE_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_SEQUENCE_HPP_INCLUDED + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + struct segment_sequence_tag {}; + + // Here, Sequence is a sequence of ranges (which may or may not be + // segmented). + template + struct segment_sequence + : sequence_base > + { + typedef fusion_sequence_tag tag; + typedef segment_sequence_tag fusion_tag; + typedef typename Sequence::is_view is_view; + typedef typename Sequence::category category; + typedef Sequence sequence_type; + sequence_type sequence; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED explicit segment_sequence(Sequence const & seq) + : sequence(seq) + {} + }; +} + +namespace extension +{ + template + struct is_segmented_impl; + + template<> + struct is_segmented_impl + { + template + struct apply + : mpl::true_ + {}; + }; + + template + struct segments_impl; + + template<> + struct segments_impl + { + template + struct apply + { + typedef typename Sequence::sequence_type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence & seq) + { + return seq.sequence; + } + }; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/detail/segmented_equal_to.hpp b/3rdparty/boost/boost/fusion/iterator/detail/segmented_equal_to.hpp new file mode 100644 index 0000000000..77a080f2b2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/segmented_equal_to.hpp @@ -0,0 +1,42 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_EQUAL_TO_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_ITERATOR_EQUAL_TO_HPP_INCLUDED + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct nil_; + + namespace detail + { + template + struct segmented_equal_to + : mpl::and_< + segmented_equal_to< + typename Stack1::cdr_type, + typename Stack2::cdr_type + > + , result_of::equal_to< + typename Stack1::car_type::begin_type, + typename Stack2::car_type::begin_type + > + > + {}; + + template <> + struct segmented_equal_to + : mpl::true_ + {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/detail/segmented_iterator.hpp b/3rdparty/boost/boost/fusion/iterator/detail/segmented_iterator.hpp new file mode 100644 index 0000000000..9e114155e0 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/segmented_iterator.hpp @@ -0,0 +1,148 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_SEGMENTED_ITERATOR_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_ITERATOR_SEGMENTED_ITERATOR_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct nil_; + + namespace detail + { + template + struct segmented_next_impl; + } + + // A segmented iterator wraps a "context", which is a cons list + // of ranges, the frontmost is range over values and the rest + // are ranges over internal segments. + template + struct segmented_iterator + : iterator_facade, forward_traversal_tag> + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED explicit segmented_iterator(Context const& ctx) + : context(ctx) + {} + + //auto deref(it) + //{ + // return deref(begin(car(it.context))) + //} + template + struct deref + { + typedef + typename result_of::deref< + typename It::context_type::car_type::begin_type + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(It const& it) + { + return *it.context.car.first; + } + }; + + //auto deref_data(it) + //{ + // return deref_data(begin(car(it.context))) + //} + template + struct deref_data + { + typedef + typename result_of::deref_data< + typename It::context_type::car_type::begin_type + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(It const& it) + { + return fusion::deref_data(it.context.car.first); + } + }; + + //auto key_of(it) + //{ + // return key_of(begin(car(it.context))) + //} + template + struct key_of + : result_of::key_of + {}; + + //auto value_of(it) + //{ + // return value_of(begin(car(it.context))) + //} + template + struct value_of + : result_of::value_of + {}; + + //auto value_of_data(it) + //{ + // return value_of_data(begin(car(it.context))) + //} + template + struct value_of_data + : result_of::value_of_data + {}; + + // Compare all the segment iterators in each stack, starting with + // the bottom-most. + template < + typename It1 + , typename It2 + , int Size1 = It1::context_type::size::value + , int Size2 = It2::context_type::size::value + > + struct equal_to + : mpl::false_ + {}; + + template + struct equal_to + : detail::segmented_equal_to< + typename It1::context_type + , typename It2::context_type + > + {}; + + template + struct next + { + typedef detail::segmented_next_impl impl; + typedef segmented_iterator type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(It const& it) + { + return type(impl::call(it.context)); + } + }; + + typedef Context context_type; + context_type context; + }; + +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/detail/segmented_next_impl.hpp b/3rdparty/boost/boost/fusion/iterator/detail/segmented_next_impl.hpp new file mode 100644 index 0000000000..62502ceef5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/detail/segmented_next_impl.hpp @@ -0,0 +1,265 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_NEXT_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_ITERATOR_NEXT_IMPL_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct iterator_range; + + template + struct segmented_iterator; + + namespace detail + { + template + struct segmented_begin_impl; + + //bool is_invalid(stack) + //{ + // return empty(car(stack)); + //} + + template + struct is_invalid + : result_of::equal_to< + typename Stack::car_type::begin_type, + typename Stack::car_type::end_type + > + {}; + + ////Advance the first iterator in the seq at the + ////top of a stack of iterator ranges. Return the + ////new stack. + //auto pop_front_car(stack) + //{ + // return cons(iterator_range(next(begin(car(stack))), end(car(stack))), cdr(stack)); + //} + + template + struct pop_front_car + { + typedef + iterator_range< + typename result_of::next< + typename Stack::car_type::begin_type + >::type + , typename Stack::car_type::end_type + > + car_type; + + typedef + cons + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return type( + car_type(fusion::next(stack.car.first), stack.car.last), + stack.cdr); + } + }; + + template < + typename Stack, + typename Next = typename pop_front_car::type, + bool IsInvalid = is_invalid::value, + int StackSize = Stack::size::value> + struct segmented_next_impl_recurse; + + // Handle the case where the top of the stack has no usable + //auto segmented_next_impl_recurse3(stack) + //{ + // if (size(stack) == 1) + // return cons(iterator_range(end(car(stack)), end(car(stack))), nil_); + // else + // return segmented_next_impl_recurse(stack.cdr); + //} + + template < + typename Stack, + int StackSize = Stack::size::value> + struct segmented_next_impl_recurse3 + { + typedef segmented_next_impl_recurse impl; + typedef typename impl::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return impl::call(stack.cdr); + } + }; + + template + struct segmented_next_impl_recurse3 + { + typedef typename Stack::car_type::end_type end_type; + typedef iterator_range range_type; + typedef cons type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return type(range_type(stack.car.last, stack.car.last)); + } + }; + + //auto segmented_next_impl_recurse2(stack) + //{ + // auto res = segmented_begin_impl(front(car(stack)), stack); + // if (is_invalid(res)) + // return segmented_next_impl_recurse3(stack); + // else + // return res; + //} + + template < + typename Stack, + typename Sequence = + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type, + typename Result = + typename segmented_begin_impl::type, + bool IsInvalid = + is_invalid::value> + struct segmented_next_impl_recurse2 + { + typedef segmented_next_impl_recurse3 impl; + typedef typename impl::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return impl::call(stack); + } + }; + + template + struct segmented_next_impl_recurse2 + { + typedef Result type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return segmented_begin_impl::call(*stack.car.first, stack); + } + }; + + //auto segmented_next_impl_recurse(stack) + //{ + // auto next = pop_front_car(stack); + // if (is_invalid(next)) + // if (1 == size(stack)) + // return next; + // else + // return segmented_next_impl_recurse(cdr(stack)); + // else + // return segmented_next_impl_recurse2(next) + //} + + template + struct segmented_next_impl_recurse + { + typedef + typename segmented_next_impl_recurse::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const& stack) + { + return segmented_next_impl_recurse::call(stack.cdr); + } + }; + + template + struct segmented_next_impl_recurse + { + typedef Next type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return pop_front_car::call(stack); + } + }; + + template + struct segmented_next_impl_recurse + { + typedef segmented_next_impl_recurse2 impl; + typedef typename impl::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return impl::call(pop_front_car::call(stack)); + } + }; + + //auto segmented_next_impl(stack) + //{ + // // car(stack) is a seq of values, not a seq of segments + // auto next = pop_front_car(stack); + // if (is_invalid(next)) + // return segmented_next_impl_recurse(cdr(next)); + // else + // return next; + //} + + template < + typename Stack, + typename Next = typename pop_front_car::type, + bool IsInvalid = is_invalid::value> + struct segmented_next_impl_aux + { + typedef segmented_next_impl_recurse impl; + typedef typename impl::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return impl::call(stack.cdr); + } + }; + + template + struct segmented_next_impl_aux + { + typedef Next type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const & stack) + { + return pop_front_car::call(stack); + } + }; + + template + struct segmented_next_impl + : segmented_next_impl_aux + {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/distance.hpp b/3rdparty/boost/boost/fusion/iterator/distance.hpp new file mode 100644 index 0000000000..7f993c0d17 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/distance.hpp @@ -0,0 +1,80 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DISTANCE_09172005_0721) +#define FUSION_DISTANCE_09172005_0721 + +#include +#include +#include + +#include +#include +#include + +#include + +namespace boost { namespace fusion +{ + struct random_access_traversal_tag; + + // Special tags: + struct iterator_facade_tag; // iterator facade tag + struct boost_array_iterator_tag; // boost::array iterator tag + struct mpl_iterator_tag; // mpl sequence iterator tag + struct std_pair_iterator_tag; // std::pair iterator tag + + namespace extension + { + template + struct distance_impl + { + // default implementation + template + struct apply : distance_detail::linear_distance + {}; + }; + + template <> + struct distance_impl + { + template + struct apply : First::template distance {}; + }; + + template <> + struct distance_impl; + + template <> + struct distance_impl; + + template <> + struct distance_impl; + } + + namespace result_of + { + template + struct distance + : extension::distance_impl::type>:: + template apply + { + typedef typename extension::distance_impl::type>:: + template apply::type distance_application; + BOOST_STATIC_CONSTANT(int, value = distance_application::value); + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::distance::type + distance(First const& a, Last const& b) + { + return result_of::distance::call(a,b); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/equal_to.hpp b/3rdparty/boost/boost/fusion/iterator/equal_to.hpp new file mode 100644 index 0000000000..191795e130 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/equal_to.hpp @@ -0,0 +1,106 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_EQUAL_TO_05052005_1208) +#define FUSION_EQUAL_TO_05052005_1208 + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct iterator_facade_tag; // iterator facade tag + struct boost_array_iterator_tag; // boost::array iterator tag + struct mpl_iterator_tag; // mpl sequence iterator tag + struct std_pair_iterator_tag; // std::pair iterator tag + + namespace extension + { + template + struct equal_to_impl + { + // default implementation + template + struct apply + : is_same::type, typename add_const::type> + {}; + }; + + template <> + struct equal_to_impl + { + template + struct dispatch : mpl::false_ {}; + + template + struct dispatch // same tag + : It1::template equal_to + {}; + + template + struct apply : dispatch + {}; + }; + + template <> + struct equal_to_impl; + + template <> + struct equal_to_impl; + + template <> + struct equal_to_impl; + } + + namespace result_of + { + template + struct equal_to + : extension::equal_to_impl::type>:: + template apply + {}; + } + + namespace iterator_operators + { + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + boost::enable_if< + mpl::and_, is_fusion_iterator > + , bool + >::type + operator==(Iter1 const&, Iter2 const&) + { + return result_of::equal_to::value; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + boost::enable_if< + mpl::and_, is_fusion_iterator > + , bool + >::type + operator!=(Iter1 const&, Iter2 const&) + { + return !result_of::equal_to::value; + } + } + + using iterator_operators::operator==; + using iterator_operators::operator!=; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/iterator/iterator_adapter.hpp b/3rdparty/boost/boost/fusion/iterator/iterator_adapter.hpp new file mode 100644 index 0000000000..de8938f6ce --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/iterator_adapter.hpp @@ -0,0 +1,147 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ITERATOR_ADAPTER_08112011_0942) +#define FUSION_ITERATOR_ADAPTER_08112011_0942 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template ::type> + struct iterator_adapter + : iterator_facade + { + typedef typename + remove_const::type + iterator_base_type; + iterator_base_type iterator_base; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + iterator_adapter(iterator_base_type const& iterator_base_) + : iterator_base(iterator_base_) {} + + // default implementation + template + struct equal_to + : result_of::equal_to< + typename I1::iterator_base_type + , typename I2::iterator_base_type + > + {}; + + // default implementation + template + struct advance + { + typedef typename Derived_::template make< + typename result_of::advance< + typename Iterator::iterator_base_type, N + >::type>::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& it) + { + return type(fusion::advance(it.iterator_base)); + } + }; + + // default implementation + template + struct distance + : result_of::distance< + typename First::iterator_base_type + , typename Last::iterator_base_type + > + {}; + + // default implementation + template + struct value_of + : result_of::value_of< + typename Iterator::iterator_base_type + > + {}; + + // default implementation + template + struct deref + { + typedef typename + result_of::deref< + typename Iterator::iterator_base_type + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& it) + { + return fusion::deref(it.iterator_base); + } + }; + + // default implementation + template + struct next + { + typedef typename Derived_::template make< + typename result_of::next< + typename Iterator::iterator_base_type + >::type>::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(fusion::next(i.iterator_base)); + } + }; + + // default implementation + template + struct prior + { + typedef typename Derived_::template make< + typename result_of::prior< + typename Iterator::iterator_base_type + >::type>::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(fusion::prior(i.iterator_base)); + } + }; + }; +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::iterator_adapter > + { }; +} +#endif + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/iterator_facade.hpp b/3rdparty/boost/boost/fusion/iterator/iterator_facade.hpp new file mode 100644 index 0000000000..1760957eef --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/iterator_facade.hpp @@ -0,0 +1,68 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ITERATOR_FACADE_09252006_1011) +#define FUSION_ITERATOR_FACADE_09252006_1011 + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_facade_tag; + + template + struct iterator_facade : iterator_base + { + typedef iterator_facade_tag fusion_tag; + typedef Derived derived_type; + typedef Category category; + + // default implementation + template + struct equal_to // default implementation + : is_same< + typename I1::derived_type + , typename I2::derived_type + > + {}; + + // default implementation + template + struct advance : + mpl::if_c< + (N::value > 0) + , advance_detail::forward + , advance_detail::backward + >::type + { + BOOST_MPL_ASSERT_NOT((traits::is_random_access)); + }; + + // default implementation + template + struct distance : + distance_detail::linear_distance + {}; + }; +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::iterator_facade > + { }; +} +#endif + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/key_of.hpp b/3rdparty/boost/boost/fusion/iterator/key_of.hpp new file mode 100644 index 0000000000..3459ab58e5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/key_of.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2009 Christopher Schmidt + + Distributed under the 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_FUSION_ITERATOR_KEY_OF_HPP +#define BOOST_FUSION_ITERATOR_KEY_OF_HPP + +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_facade_tag; + + namespace extension + { + template + struct key_of_impl; + + template <> + struct key_of_impl + { + template + struct apply + : It::template key_of + {}; + }; + } + + namespace result_of + { + template + struct key_of + : extension::key_of_impl::type>:: + template apply + {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/mpl.hpp b/3rdparty/boost/boost/fusion/iterator/mpl.hpp new file mode 100644 index 0000000000..fdaf749c08 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/mpl.hpp @@ -0,0 +1,14 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ITERATOR_MPL_10022005_0557) +#define FUSION_ITERATOR_MPL_10022005_0557 + +#include +#include +#include + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/mpl/convert_iterator.hpp b/3rdparty/boost/boost/fusion/iterator/mpl/convert_iterator.hpp new file mode 100644 index 0000000000..3e17478eb2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/mpl/convert_iterator.hpp @@ -0,0 +1,62 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONVERT_ITERATOR_05062005_1218) +#define FUSION_CONVERT_ITERATOR_05062005_1218 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct mpl_iterator; // forward declaration + + // Test T. If it is a fusion iterator, return a reference to it. + // else, assume it is an mpl iterator. + + template + struct convert_iterator + { + typedef typename + mpl::if_< + is_fusion_iterator + , T + , mpl_iterator + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static T const& + call(T const& x, mpl::true_) + { + return x; + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static mpl_iterator + call(T const& /*x*/, mpl::false_) + { + return mpl_iterator(); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static typename + mpl::if_< + is_fusion_iterator + , T const& + , mpl_iterator + >::type + call(T const& x) + { + return call(x, is_fusion_iterator()); + } + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/mpl/fusion_iterator.hpp b/3rdparty/boost/boost/fusion/iterator/mpl/fusion_iterator.hpp new file mode 100644 index 0000000000..f8feacf671 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/mpl/fusion_iterator.hpp @@ -0,0 +1,80 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_FUSION_ITERATOR_10012005_1551) +#define FUSION_FUSION_ITERATOR_10012005_1551 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + +template +struct to_mpl_category { + typedef typename mpl::eval_if< + is_base_of, + mpl::random_access_iterator_tag, + mpl::eval_if< + is_base_of, + mpl::bidirectional_iterator_tag, + mpl::forward_iterator_tag + > + >::type type; +}; + +}}} + +namespace boost { namespace mpl +{ + template + struct fusion_iterator + { + typedef typename fusion::result_of::value_of::type type; + typedef typename fusion::traits::category_of::type fusion_category; + typedef typename fusion::detail::to_mpl_category::type category; + typedef Iterator iterator; + }; + + template + struct next > + { + typedef fusion_iterator::type> type; + }; + + template + struct prior > + { + typedef fusion_iterator::type> type; + }; + + template + struct advance, N> + { + typedef fusion_iterator::type> type; + }; + + template + struct distance, fusion_iterator > + : fusion::result_of::distance + {}; + +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/iterator/next.hpp b/3rdparty/boost/boost/fusion/iterator/next.hpp new file mode 100644 index 0000000000..d6ca3d6630 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/next.hpp @@ -0,0 +1,65 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_NEXT_05042005_1101) +#define FUSION_NEXT_05042005_1101 + +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct iterator_facade_tag; // iterator facade tag + struct boost_array_iterator_tag; // boost::array iterator tag + struct mpl_iterator_tag; // mpl sequence iterator tag + struct std_pair_iterator_tag; // std::pair iterator tag + + namespace extension + { + template + struct next_impl + { + template + struct apply {}; + }; + + template <> + struct next_impl + { + template + struct apply : Iterator::template next {}; + }; + + template <> + struct next_impl; + + template <> + struct next_impl; + + template <> + struct next_impl; + } + + namespace result_of + { + template + struct next + : extension::next_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::next::type const + next(Iterator const& i) + { + return result_of::next::call(i); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/prior.hpp b/3rdparty/boost/boost/fusion/iterator/prior.hpp new file mode 100644 index 0000000000..80e891c791 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/prior.hpp @@ -0,0 +1,65 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_PRIOR_05042005_1144) +#define FUSION_PRIOR_05042005_1144 + +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct iterator_facade_tag; // iterator facade tag + struct boost_array_iterator_tag; // boost::array iterator tag + struct mpl_iterator_tag; // mpl sequence iterator tag + struct std_pair_iterator_tag; // std::pair iterator tag + + namespace extension + { + template + struct prior_impl + { + template + struct apply {}; + }; + + template <> + struct prior_impl + { + template + struct apply : Iterator::template prior {}; + }; + + template <> + struct prior_impl; + + template <> + struct prior_impl; + + template <> + struct prior_impl; + } + + namespace result_of + { + template + struct prior + : extension::prior_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::prior::type const + prior(Iterator const& i) + { + return result_of::prior::call(i); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/segmented_iterator.hpp b/3rdparty/boost/boost/fusion/iterator/segmented_iterator.hpp new file mode 100644 index 0000000000..b9aac07c6c --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/segmented_iterator.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED + +#include +#include +#include +#include +#include + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/value_of.hpp b/3rdparty/boost/boost/fusion/iterator/value_of.hpp new file mode 100644 index 0000000000..1408dc7a55 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/value_of.hpp @@ -0,0 +1,58 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VALUE_OF_05052005_1126) +#define FUSION_VALUE_OF_05052005_1126 + +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct iterator_facade_tag; // iterator facade tag + struct boost_array_iterator_tag; // boost::array iterator tag + struct mpl_iterator_tag; // mpl sequence iterator tag + struct std_pair_iterator_tag; // std::pair iterator tag + + namespace extension + { + template + struct value_of_impl + { + template + struct apply {}; + }; + + template <> + struct value_of_impl + { + template + struct apply : Iterator::template value_of {}; + }; + + template <> + struct value_of_impl; + + template <> + struct value_of_impl; + + template <> + struct value_of_impl; + } + + namespace result_of + { + template + struct value_of + : extension::value_of_impl::type>:: + template apply + {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/iterator/value_of_data.hpp b/3rdparty/boost/boost/fusion/iterator/value_of_data.hpp new file mode 100644 index 0000000000..341fe882a9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/iterator/value_of_data.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2009 Christopher Schmidt + + Distributed under the 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_FUSION_ITERATOR_VALUE_OF_DATA_HPP +#define BOOST_FUSION_ITERATOR_VALUE_OF_DATA_HPP + +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_facade_tag; + + namespace extension + { + template + struct value_of_data_impl; + + template <> + struct value_of_data_impl + { + template + struct apply + : It::template value_of_data + {}; + }; + } + + namespace result_of + { + template + struct value_of_data + : extension::value_of_data_impl::type>:: + template apply + {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl.hpp b/3rdparty/boost/boost/fusion/mpl.hpp new file mode 100644 index 0000000000..705f0db7e4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_MPL_09172006_2049) +#define FUSION_MPL_09172006_2049 + +// The fusion <--> MPL link headers +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl/at.hpp b/3rdparty/boost/boost/fusion/mpl/at.hpp new file mode 100644 index 0000000000..ec4b257d7c --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/at.hpp @@ -0,0 +1,34 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_AT_10022005_1616) +#define FUSION_AT_10022005_1616 + +#include +#include +#include + +namespace boost { +namespace fusion +{ + struct fusion_sequence_tag; +} + +namespace mpl +{ + template + struct at_impl; + + template <> + struct at_impl + { + template + struct apply : fusion::result_of::value_at {}; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/back.hpp b/3rdparty/boost/boost/fusion/mpl/back.hpp new file mode 100644 index 0000000000..631b4ea653 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/back.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BACK_10022005_1620) +#define FUSION_BACK_10022005_1620 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct back_impl; + + template <> + struct back_impl + { + template + struct apply : + fusion::result_of::value_of< + typename fusion::result_of::prior< + typename fusion::result_of::end::type + >::type> {}; + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl/begin.hpp b/3rdparty/boost/boost/fusion/mpl/begin.hpp new file mode 100644 index 0000000000..f97e82ceb1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/begin.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BEGIN_10022005_1620) +#define FUSION_BEGIN_10022005_1620 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct begin_impl; + + template <> + struct begin_impl + { + template + struct apply + { + typedef fusion_iterator::type> type; + }; + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl/clear.hpp b/3rdparty/boost/boost/fusion/mpl/clear.hpp new file mode 100644 index 0000000000..745ca0f9c0 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/clear.hpp @@ -0,0 +1,34 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CLEAR_10022005_1817) +#define FUSION_CLEAR_10022005_1817 + +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct clear_impl; + + template <> + struct clear_impl + { + template + struct apply + { + typedef typename + fusion::detail::clear::type>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/detail/clear.hpp b/3rdparty/boost/boost/fusion/mpl/detail/clear.hpp new file mode 100644 index 0000000000..9e640daad6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/detail/clear.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CLEAR_10022005_1442) +#define FUSION_CLEAR_10022005_1442 + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct cons_tag; + struct map_tag; + struct set_tag; + struct vector_tag; + struct deque_tag; + + namespace detail + { + template + struct clear; + + template <> + struct clear : mpl::identity > {}; + + template <> + struct clear : mpl::identity > {}; + + template <> + struct clear : mpl::identity > {}; + + template <> + struct clear : mpl::identity > {}; + + template <> + struct clear : mpl::identity > {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl/empty.hpp b/3rdparty/boost/boost/fusion/mpl/empty.hpp new file mode 100644 index 0000000000..b058ae9503 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/empty.hpp @@ -0,0 +1,27 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_EMPTY_10022005_1619) +#define FUSION_EMPTY_10022005_1619 + +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct empty_impl; + + template <> + struct empty_impl + { + template + struct apply : fusion::result_of::empty {}; + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl/end.hpp b/3rdparty/boost/boost/fusion/mpl/end.hpp new file mode 100644 index 0000000000..e5aa8b96c4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/end.hpp @@ -0,0 +1,32 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_END_10022005_1619) +#define FUSION_END_10022005_1619 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct end_impl; + + template <> + struct end_impl + { + template + struct apply + { + typedef fusion_iterator::type> type; + }; + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl/erase.hpp b/3rdparty/boost/boost/fusion/mpl/erase.hpp new file mode 100644 index 0000000000..82d4260fba --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/erase.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ERASE_10022005_1835) +#define FUSION_ERASE_10022005_1835 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct erase_impl; + + template <> + struct erase_impl + { + template + struct apply + { + typedef typename + fusion::result_of::erase::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/erase_key.hpp b/3rdparty/boost/boost/fusion/mpl/erase_key.hpp new file mode 100644 index 0000000000..4dabf04255 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/erase_key.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ERASE_KEY_10022005_1907) +#define FUSION_ERASE_KEY_10022005_1907 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct erase_key_impl; + + template <> + struct erase_key_impl + { + template + struct apply + { + typedef typename + fusion::result_of::erase_key::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/front.hpp b/3rdparty/boost/boost/fusion/mpl/front.hpp new file mode 100644 index 0000000000..45672a6dcb --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/front.hpp @@ -0,0 +1,29 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_FRONT_10022005_1618) +#define FUSION_FRONT_10022005_1618 + +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct front_impl; + + template <> + struct front_impl + { + template + struct apply : + fusion::result_of::value_of::type> {}; + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/mpl/has_key.hpp b/3rdparty/boost/boost/fusion/mpl/has_key.hpp new file mode 100644 index 0000000000..f1e3359f50 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/has_key.hpp @@ -0,0 +1,28 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_HAS_KEY_10022005_1617) +#define FUSION_HAS_KEY_10022005_1617 + +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct has_key_impl; + + template <> + struct has_key_impl + { + template + struct apply : fusion::result_of::has_key {}; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/insert.hpp b/3rdparty/boost/boost/fusion/mpl/insert.hpp new file mode 100644 index 0000000000..45b5d87d78 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/insert.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_INSERT_10022005_1837) +#define FUSION_INSERT_10022005_1837 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct insert_impl; + + template <> + struct insert_impl + { + template + struct apply + { + typedef typename + fusion::result_of::insert::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/insert_range.hpp b/3rdparty/boost/boost/fusion/mpl/insert_range.hpp new file mode 100644 index 0000000000..31389ffc44 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/insert_range.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_INSERT_RANGE_10022005_1838) +#define FUSION_INSERT_RANGE_10022005_1838 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct insert_range_impl; + + template <> + struct insert_range_impl + { + template + struct apply + { + typedef typename + fusion::result_of::insert_range::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/pop_back.hpp b/3rdparty/boost/boost/fusion/mpl/pop_back.hpp new file mode 100644 index 0000000000..d91ca8aac4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/pop_back.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_POP_BACK_10022005_1801) +#define FUSION_POP_BACK_10022005_1801 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct pop_back_impl; + + template <> + struct pop_back_impl + { + template + struct apply + { + typedef typename + fusion::result_of::pop_back::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/pop_front.hpp b/3rdparty/boost/boost/fusion/mpl/pop_front.hpp new file mode 100644 index 0000000000..5f6533bc32 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/pop_front.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_POP_FRONT_10022005_1800) +#define FUSION_POP_FRONT_10022005_1800 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct pop_front_impl; + + template <> + struct pop_front_impl + { + template + struct apply + { + typedef typename + fusion::result_of::pop_front::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/push_back.hpp b/3rdparty/boost/boost/fusion/mpl/push_back.hpp new file mode 100644 index 0000000000..8af5456ba6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/push_back.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_PUSH_BACK_10022005_1647) +#define FUSION_PUSH_BACK_10022005_1647 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct push_back_impl; + + template <> + struct push_back_impl + { + template + struct apply + { + typedef typename + fusion::result_of::push_back::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/push_front.hpp b/3rdparty/boost/boost/fusion/mpl/push_front.hpp new file mode 100644 index 0000000000..5978fd6e21 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/push_front.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_PUSH_FRONT_10022005_1720) +#define FUSION_PUSH_FRONT_10022005_1720 + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct push_front_impl; + + template <> + struct push_front_impl + { + template + struct apply + { + typedef typename + fusion::result_of::push_front::type + result; + + typedef typename + fusion::result_of::convert< + typename fusion::detail::tag_of::type, result>::type + type; + }; + }; +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/mpl/size.hpp b/3rdparty/boost/boost/fusion/mpl/size.hpp new file mode 100644 index 0000000000..c77e55fbd5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/mpl/size.hpp @@ -0,0 +1,27 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SIZE_10022005_1617) +#define FUSION_SIZE_10022005_1617 + +#include +#include +#include + +namespace boost { namespace mpl +{ + template + struct size_impl; + + template <> + struct size_impl + { + template + struct apply : fusion::result_of::size {}; + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/convert.hpp b/3rdparty/boost/boost/fusion/sequence/convert.hpp new file mode 100644 index 0000000000..534d991a28 --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/convert.hpp @@ -0,0 +1,61 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CONVERT_10022005_1442) +#define FUSION_CONVERT_10022005_1442 + +#include +#if BOOST_WORKAROUND(BOOST_GCC, < 30500) +#include +#include +#define BOOST_FUSION_WA_GCC34(type1, type2) \ + boost::lazy_disable_if, type1, type2> +#else +#define BOOST_FUSION_WA_GCC34(type1, type2) type1, type2 +#endif + +namespace boost { namespace fusion +{ + namespace extension + { + template + struct convert_impl; + } + + namespace result_of + { + template + struct convert + { + typedef typename + extension::convert_impl::template apply + gen; + + typedef typename gen::type type; + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename BOOST_FUSION_WA_GCC34(result_of::convert)::type + convert(Sequence& seq) + { + typedef typename result_of::convert::gen gen; + return gen::call(seq); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::convert::type + convert(Sequence const& seq) + { + typedef typename result_of::convert::gen gen; + return gen::call(seq); + } +}} + +#undef BOOST_FUSION_WA_GCC34 +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/begin.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/begin.hpp new file mode 100644 index 0000000000..79c14d74ab --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/begin.hpp @@ -0,0 +1,98 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BEGIN_04052005_1132) +#define FUSION_BEGIN_04052005_1132 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct sequence_facade_tag; // iterator facade tag + struct boost_tuple_tag; // boost::tuples::tuple tag + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + namespace extension + { + template + struct begin_impl + { + template + struct apply + : mpl::if_< + traits::is_segmented + , detail::segmented_begin + , mpl::empty_base + >::type + {}; + }; + + template <> + struct begin_impl + { + template + struct apply : Sequence::template begin {}; + }; + + template <> + struct begin_impl; + + template <> + struct begin_impl; + + template <> + struct begin_impl; + + template <> + struct begin_impl; + } + + namespace result_of + { + template + struct begin + : extension::begin_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::begin + >::type const + begin(Sequence& seq) + { + return result_of::begin::call(seq); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::begin + >::type const + begin(Sequence const& seq) + { + return result_of::begin::call(seq); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp new file mode 100644 index 0000000000..ec20ac414d --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp @@ -0,0 +1,45 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + //auto segmented_begin( seq ) + //{ + // return make_segmented_iterator( segmented_begin_impl( seq, nil_ ) ); + //} + + template + struct segmented_begin + { + typedef + segmented_iterator< + typename segmented_begin_impl::type + > + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq) + { + return type( + segmented_begin_impl::call(seq, Nil_())); + } + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp new file mode 100644 index 0000000000..12d9e24c47 --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp @@ -0,0 +1,96 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct iterator_range; +}} + +namespace boost { namespace fusion { namespace detail +{ + struct segmented_begin_fun + { + template + struct apply + { + typedef + iterator_range< + typename fusion::result_of::begin::type + , typename fusion::result_of::end::type + > + range_type; + + typedef cons type; + typedef mpl::false_ continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq, State const&, Context const& context, segmented_begin_fun) + { + return type(range_type(fusion::begin(seq), fusion::end(seq)), context); + } + }; + }; + + template ::type::value> + struct segmented_begin_impl_aux + { + typedef + segmented_end_impl + end_impl; + + typedef + segmented_fold_until_impl< + Sequence + , typename end_impl::type + , Stack + , segmented_begin_fun + > + fold_impl; + + typedef typename fold_impl::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq, Stack const& stack) + { + return fold_impl::call(seq, end_impl::call(seq, stack), stack, segmented_begin_fun()); + } + }; + + template + struct segmented_begin_impl_aux + { + typedef typename result_of::begin::type begin_type; + typedef typename result_of::end::type end_type; + typedef iterator_range pair_type; + typedef cons type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq, Stack stack) + { + return type(pair_type(fusion::begin(seq), fusion::end(seq)), stack); + } + }; + + template + struct segmented_begin_impl + : segmented_begin_impl_aux + {}; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp new file mode 100644 index 0000000000..55419ed80d --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp @@ -0,0 +1,41 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED + +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + //auto segmented_end( seq ) + //{ + // return make_segmented_iterator( segmented_end_impl( seq ) ); + //} + + template + struct segmented_end + { + typedef + segmented_iterator< + typename segmented_end_impl::type + > + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence & seq) + { + return type( + segmented_end_impl::call(seq, Nil_())); + } + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp new file mode 100644 index 0000000000..da48649a24 --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp @@ -0,0 +1,68 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_END_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_END_IMPL_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + template + struct iterator_range; +}} + +namespace boost { namespace fusion { namespace detail +{ + //auto segmented_end_impl( seq, stack ) + //{ + // assert(is_segmented(seq)); + // auto it = end(segments(seq)); + // return cons(iterator_range(it, it), stack); + //} + + template + struct segmented_end_impl + { + BOOST_MPL_ASSERT((traits::is_segmented)); + + typedef + typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::segments::type + >::type + >::type + >::type + end_type; + + typedef iterator_range pair_type; + typedef cons type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static pair_type make_pair(end_type end) + { + return pair_type(end, end); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence & seq, Stack stack) + { + return type( + make_pair(fusion::end(fusion::segments(seq))), + stack); + } + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp new file mode 100644 index 0000000000..4defcedde1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp @@ -0,0 +1,55 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_SIZE_08112006_1141) +#define BOOST_FUSION_SEGMENTED_SIZE_08112006_1141 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + /////////////////////////////////////////////////////////////////////////// + // calculates the size of any segmented data structure. + template + struct segmented_size; + + /////////////////////////////////////////////////////////////////////////// + template::value> + struct segmented_size_impl + : mpl::fold< + typename remove_reference< + typename add_const< + typename result_of::segments::type + >::type + >::type + , mpl::size_t<0> + , mpl::plus > > + >::type + {}; + + template + struct segmented_size_impl + : result_of::size::type + {}; + + template + struct segmented_size + : segmented_size_impl + {}; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/empty.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/empty.hpp new file mode 100644 index 0000000000..6a0dbe74a5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/empty.hpp @@ -0,0 +1,63 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_EMPTY_09162005_0335) +#define FUSION_EMPTY_09162005_0335 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct sequence_facade_tag; + struct mpl_sequence_tag; // mpl sequence tag + + namespace extension + { + template + struct empty_impl + { + template + struct apply + : mpl::bool_<(result_of::size::value == 0)> + {}; + }; + + template <> + struct empty_impl + { + template + struct apply : Sequence::template empty {}; + }; + + template <> + struct empty_impl; + } + + namespace result_of + { + template + struct empty + : extension::empty_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::empty::type + empty(Sequence const&) + { + typedef typename result_of::empty::type result; + return result(); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/end.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/end.hpp new file mode 100644 index 0000000000..b342468f0e --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/end.hpp @@ -0,0 +1,98 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_END_04052005_1141) +#define FUSION_END_04052005_1141 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct sequence_facade_tag; + struct boost_tuple_tag; // boost::tuples::tuple tag + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + namespace extension + { + template + struct end_impl + { + template + struct apply + : mpl::if_< + traits::is_segmented + , detail::segmented_end + , mpl::empty_base + >::type + {}; + }; + + template <> + struct end_impl + { + template + struct apply : Sequence::template end {}; + }; + + template <> + struct end_impl; + + template <> + struct end_impl; + + template <> + struct end_impl; + + template <> + struct end_impl; + } + + namespace result_of + { + template + struct end + : extension::end_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::end + >::type const + end(Sequence& seq) + { + return result_of::end::call(seq); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::end + >::type const + end(Sequence const& seq) + { + return result_of::end::call(seq); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/has_key.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/has_key.hpp new file mode 100644 index 0000000000..d69a82fbff --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/has_key.hpp @@ -0,0 +1,81 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_HAS_KEY_09232005_1454) +#define FUSION_HAS_KEY_09232005_1454 + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct void_; + + // Special tags: + struct sequence_facade_tag; + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + namespace extension + { + template + struct has_key_impl + { + template + struct apply + : mpl::not_< + typename result_of::equal_to< + typename result_of::find::type + , typename result_of::end::type + >::type + >::type + {}; + }; + + template <> + struct has_key_impl + { + template + struct apply : Sequence::template has_key {}; + }; + + template <> + struct has_key_impl; + + template <> + struct has_key_impl; + + template <> + struct has_key_impl; + } + + namespace result_of + { + template + struct has_key + : extension::has_key_impl::type>:: + template apply + {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::has_key::type + has_key(Sequence const&) + { + typedef typename result_of::has_key::type result; + return result(); + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/segments.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/segments.hpp new file mode 100644 index 0000000000..41501a9643 --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/segments.hpp @@ -0,0 +1,79 @@ +/*============================================================================= + Copyright (c) 2006 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTS_04052005_1141) +#define BOOST_FUSION_SEGMENTS_04052005_1141 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct sequence_facade_tag; + struct iterator_range_tag; + + // segments: returns a sequence of sequences + namespace extension + { + template + struct segments_impl + { + template + struct apply {}; + }; + + template <> + struct segments_impl + { + template + struct apply : Sequence::template segments {}; + }; + + template <> + struct segments_impl; + } + + namespace result_of + { + template + struct segments + { + typedef typename traits::tag_of::type tag_type; + + typedef typename + extension::segments_impl::template apply::type + type; + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_disable_if< + is_const + , result_of::segments + >::type + segments(Sequence& seq) + { + typedef typename traits::tag_of::type tag_type; + return extension::segments_impl::template apply::call(seq); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::segments::type + segments(Sequence const& seq) + { + typedef typename traits::tag_of::type tag_type; + return extension::segments_impl::template apply::call(seq); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/size.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/size.hpp new file mode 100644 index 0000000000..97aa3ef9ec --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/size.hpp @@ -0,0 +1,86 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SIZE_05052005_0214) +#define FUSION_SIZE_05052005_0214 + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct sequence_facade_tag; + struct boost_tuple_tag; // boost::tuples::tuple tag + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + namespace extension + { + template + struct size_impl + { + template + struct unsegmented_size : Sequence::size {}; + + template + struct apply + : mpl::if_< + traits::is_segmented + , detail::segmented_size + , unsegmented_size + >::type + {}; + }; + + template <> + struct size_impl + { + template + struct apply : Sequence::template size {}; + }; + + template <> + struct size_impl; + + template <> + struct size_impl; + + template <> + struct size_impl; + + template <> + struct size_impl; + } + + namespace result_of + { + template + struct size + : mpl::int_< + extension::size_impl::type> + ::template apply::type::value + > {}; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::size::type + size(Sequence const&) + { + typedef typename result_of::size::type result; + return result(); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic/value_at.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic/value_at.hpp new file mode 100644 index 0000000000..152f0c9455 --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic/value_at.hpp @@ -0,0 +1,88 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VALUE_AT_05052005_0229) +#define FUSION_VALUE_AT_05052005_0229 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct sequence_facade_tag; + struct boost_tuple_tag; // boost::tuples::tuple tag + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + namespace extension + { + template + struct value_at_impl + { + template + struct apply; + }; + + template <> + struct value_at_impl + { + template + struct apply : Sequence::template value_at {}; + }; + + template <> + struct value_at_impl; + + template <> + struct value_at_impl; + + template <> + struct value_at_impl; + + template <> + struct value_at_impl; + } + + namespace detail + { + template + struct value_at_impl + : mpl::if_< + mpl::or_< + mpl::less::template apply::type> + , traits::is_unbounded + > + , typename extension::value_at_impl::template apply + , mpl::empty_base + >::type + {}; + } + + namespace result_of + { + template + struct value_at + : detail::value_at_impl::type> + {}; + + template + struct value_at_c + : fusion::result_of::value_at > + {}; + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/sequence/intrinsic_fwd.hpp b/3rdparty/boost/boost/fusion/sequence/intrinsic_fwd.hpp new file mode 100644 index 0000000000..a6354ea3bb --- /dev/null +++ b/3rdparty/boost/boost/fusion/sequence/intrinsic_fwd.hpp @@ -0,0 +1,223 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEQUENCE_INTRINSIC_FWD_HPP_INCLUDED) +#define BOOST_FUSION_SEQUENCE_INTRINSIC_FWD_HPP_INCLUDED + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace extension + { + template + struct at_impl; + + template + struct begin_impl; + + template + struct empty_impl; + + template + struct end_impl; + + template + struct has_key_impl; + + template + struct segments_impl; + + template + struct size_impl; + + template + struct value_at_impl; + + template + struct at_key_impl; + + template + struct value_at_key_impl; + } + + namespace result_of + { + template + struct at; + + template + struct at_c; + + template + struct back; + + template + struct begin; + + template + struct empty; + + template + struct end; + + template + struct front; + + template + struct has_key; + + template + struct segments; + + template + struct size; + + template + struct value_at; + + template + struct value_at_c; + + template + struct at_key; + + template + struct value_at_key; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_disable_if< + is_const + , result_of::at + >::type + at(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::at::type + at(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_disable_if< + is_const + , result_of::at_c + >::type + at_c(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::at_c::type + at_c(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::back::type + back(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::back::type + back(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_enable_if< + traits::is_sequence + , result_of::begin + >::type const + begin(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_enable_if< + traits::is_sequence + , result_of::begin + >::type const + begin(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::empty::type + empty(Sequence const&); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_enable_if< + traits::is_sequence + , result_of::end + >::type const + end(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_enable_if< + traits::is_sequence + , result_of::end + >::type const + end(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::front::type + front(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::front::type + front(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::has_key::type + has_key(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_disable_if< + is_const + , result_of::segments + >::type + segments(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::segments::type + segments(Sequence const& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::size::type + size(Sequence const&); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename + lazy_disable_if< + is_const + , result_of::at_key + >::type + at_key(Sequence& seq); + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename result_of::at_key::type + at_key(Sequence const& seq); +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/category_of.hpp b/3rdparty/boost/boost/fusion/support/category_of.hpp new file mode 100644 index 0000000000..7397c45ad6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/category_of.hpp @@ -0,0 +1,124 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CATEGORY_OF_07202005_0308) +#define FUSION_CATEGORY_OF_07202005_0308 + +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct boost_tuple_tag; // boost::tuples::tuple tag + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + struct incrementable_traversal_tag {}; + + struct single_pass_traversal_tag + : incrementable_traversal_tag {}; + + struct forward_traversal_tag + : single_pass_traversal_tag {}; + + struct bidirectional_traversal_tag + : forward_traversal_tag {}; + + struct random_access_traversal_tag + : bidirectional_traversal_tag {}; + + struct associative_tag {}; + + struct unbounded_tag {}; + + namespace extension + { + template + struct category_of_impl + { + template + struct apply + { + typedef typename T::category type; + }; + }; + + template <> + struct category_of_impl; + + template <> + struct category_of_impl; + + template <> + struct category_of_impl; + + template <> + struct category_of_impl; + } + + namespace traits + { + template + struct category_of + : extension::category_of_impl::type>:: + template apply + {}; + + template + struct is_associative + : is_base_of< + associative_tag + , typename category_of::type> + {}; + + template + struct is_incrementable + : is_base_of< + incrementable_traversal_tag + , typename category_of::type> + {}; + + template + struct is_single_pass + : is_base_of< + single_pass_traversal_tag + , typename category_of::type> + {}; + + template + struct is_forward + : is_base_of< + forward_traversal_tag + , typename category_of::type> + {}; + + template + struct is_bidirectional + : is_base_of< + bidirectional_traversal_tag + , typename category_of::type> + {}; + + template + struct is_random_access + : is_base_of< + random_access_traversal_tag + , typename category_of::type> + {}; + + template + struct is_unbounded + : is_base_of< + unbounded_tag + , typename category_of::type> + {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/config.hpp b/3rdparty/boost/boost/fusion/support/config.hpp new file mode 100644 index 0000000000..dc614d9d33 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/config.hpp @@ -0,0 +1,130 @@ +/*============================================================================= + Copyright (c) 2014 Eric Niebler + Copyright (c) 2014,2015,2018 Kohei Takahashi + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SUPPORT_CONFIG_01092014_1718) +#define FUSION_SUPPORT_CONFIG_01092014_1718 + +#include +#include +#include + +#ifndef BOOST_FUSION_GPU_ENABLED +#define BOOST_FUSION_GPU_ENABLED BOOST_GPU_ENABLED +#endif + +// Enclose with inline namespace because unqualified lookup of GCC < 4.5 is broken. +// +// namespace detail { +// struct foo; +// struct X { }; +// } +// +// template void foo(T) { } +// +// int main() +// { +// foo(detail::X()); +// // prog.cc: In function 'int main()': +// // prog.cc:2: error: 'struct detail::foo' is not a function, +// // prog.cc:6: error: conflict with 'template void foo(T)' +// // prog.cc:10: error: in call to 'foo' +// } +namespace boost { namespace fusion { namespace detail +{ + namespace barrier { } + using namespace barrier; +}}} +#define BOOST_FUSION_BARRIER_BEGIN namespace barrier { +#define BOOST_FUSION_BARRIER_END } + + +#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1900)) +// All of rvalue-reference ready MSVC don't perform implicit conversion from +// fundamental type to rvalue-reference of another fundamental type [1]. +// +// Following example doesn't compile +// +// int i; +// long &&l = i; // sigh..., std::forward(i) also fail. +// +// however, following one will work. +// +// int i; +// long &&l = static_cast(i); +// +// OK, now can we replace all usage of std::forward to static_cast? -- I say NO! +// All of rvalue-reference ready Clang doesn't compile above static_cast usage [2], sigh... +// +// References: +// 1. https://connect.microsoft.com/VisualStudio/feedback/details/1037806/implicit-conversion-doesnt-perform-for-fund +// 2. http://llvm.org/bugs/show_bug.cgi?id=19917 +// +// Tentatively, we use static_cast to forward if run under MSVC. +# define BOOST_FUSION_FWD_ELEM(type, value) static_cast(value) +#else +# define BOOST_FUSION_FWD_ELEM(type, value) std::forward(value) +#endif + + +// Workaround for LWG 2408: C++17 SFINAE-friendly std::iterator_traits. +// http://cplusplus.github.io/LWG/lwg-defects.html#2408 +// +// - GCC 4.5 enables the feature under C++11. +// https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01105.html +// +// - MSVC 10.0 implements iterator intrinsics; MSVC 13.0 implements LWG2408. +#if (defined(BOOST_LIBSTDCXX_VERSION) && (BOOST_LIBSTDCXX_VERSION < 40500) && \ + defined(BOOST_LIBSTDCXX11)) || \ + (defined(BOOST_MSVC) && (1600 <= BOOST_MSVC && BOOST_MSVC < 1900)) +# define BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits; +} +#endif + + +// Workaround for older GCC that doesn't accept `this` in constexpr. +#if BOOST_WORKAROUND(BOOST_GCC, < 40700) +#define BOOST_FUSION_CONSTEXPR_THIS +#else +#define BOOST_FUSION_CONSTEXPR_THIS BOOST_CONSTEXPR +#endif + + +// Workaround for compilers not implementing N3031 (DR743 and DR950). +#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1913)) || \ + BOOST_WORKAROUND(BOOST_GCC, < 40700) || \ + defined(BOOST_CLANG) && (__clang_major__ == 3 && __clang_minor__ == 0) +# if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) +namespace boost { namespace fusion { namespace detail +{ + template + using type_alias_t = T; +}}} +# define BOOST_FUSION_DECLTYPE_N3031(parenthesized_expr) \ + boost::fusion::detail::type_alias_t +# else +# include +# define BOOST_FUSION_DECLTYPE_N3031(parenthesized_expr) \ + boost::mpl::identity::type +# endif +#else +# define BOOST_FUSION_DECLTYPE_N3031(parenthesized_expr) \ + decltype parenthesized_expr +#endif + + +// Workaround for GCC 4.6 that rejects defaulted function with noexcept. +#if BOOST_WORKAROUND(BOOST_GCC, / 100 == 406) +# define BOOST_FUSION_NOEXCEPT_ON_DEFAULTED +#else +# define BOOST_FUSION_NOEXCEPT_ON_DEFAULTED BOOST_NOEXCEPT +#endif + +#endif diff --git a/3rdparty/boost/boost/fusion/support/detail/access.hpp b/3rdparty/boost/boost/fusion/support/detail/access.hpp new file mode 100644 index 0000000000..ab88538314 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/access.hpp @@ -0,0 +1,65 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ACCESS_04182005_0737) +#define FUSION_ACCESS_04182005_0737 + +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct ref_result + { + typedef typename add_reference::type type; + }; + + template + struct cref_result + { + typedef typename + add_reference< + typename add_const::type + >::type + type; + }; + + template + struct call_param + { + typedef T const& type; + }; + + template + struct call_param + { + typedef T& type; + }; + + template + struct call_param + { + typedef T const& type; + }; + + template + struct call_param + { + typedef T const& type; + }; + + template + struct call_param + { + typedef T const& type; + }; + +}}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/support/detail/as_fusion_element.hpp b/3rdparty/boost/boost/fusion/support/detail/as_fusion_element.hpp new file mode 100644 index 0000000000..2af960eedf --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/as_fusion_element.hpp @@ -0,0 +1,60 @@ +/*============================================================================= + Copyright (c) 1999-2003 Jaakko Jarvi + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_AS_FUSION_ELEMENT_05052005_0338) +#define FUSION_AS_FUSION_ELEMENT_05052005_0338 + +#include +#include + +#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL +#include +#endif + +namespace boost { namespace fusion { namespace detail +{ + template + struct as_fusion_element + { + typedef T type; + }; + + template + struct as_fusion_element > + { + typedef T& type; + }; + +#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL + template + struct as_fusion_element > + { + typedef T& type; + }; +#endif + + template + struct as_fusion_element + { + typedef const T(&type)[N]; + }; + + template + struct as_fusion_element + { + typedef const volatile T(&type)[N]; + }; + + template + struct as_fusion_element + { + typedef const volatile T(&type)[N]; + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/detail/enabler.hpp b/3rdparty/boost/boost/fusion/support/detail/enabler.hpp new file mode 100644 index 0000000000..ea263a41d3 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/enabler.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2015 Kohei Takahashi + + Distributed under the 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_FUSION_SUPPORT_DETAIL_ENABLER_12102015_0346 +#define BOOST_FUSION_SUPPORT_DETAIL_ENABLER_12102015_0346 + +#include + +namespace boost { namespace fusion { namespace detail +{ + +struct enabler_ {}; +BOOST_STATIC_CONSTEXPR enabler_ enabler = {}; + +}}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/support/detail/is_mpl_sequence.hpp b/3rdparty/boost/boost/fusion/support/detail/is_mpl_sequence.hpp new file mode 100644 index 0000000000..16b6db1235 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/is_mpl_sequence.hpp @@ -0,0 +1,27 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105) +#define FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105 + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct is_mpl_sequence + : mpl::and_< + mpl::not_ > + , mpl::is_sequence > + {}; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/detail/is_native_fusion_sequence.hpp b/3rdparty/boost/boost/fusion/support/detail/is_native_fusion_sequence.hpp new file mode 100644 index 0000000000..189c784dab --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/is_native_fusion_sequence.hpp @@ -0,0 +1,27 @@ +/*============================================================================= + Copyright (c) 2018 Kohei Takahashi + + Distributed under the 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_FUSION_IS_NATIVE_FUSION_SEQUENCE +#define BOOST_FUSION_IS_NATIVE_FUSION_SEQUENCE + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct is_native_fusion_sequence + : mpl::and_< + is_complete + , is_convertible + > + {}; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/detail/mpl_iterator_category.hpp b/3rdparty/boost/boost/fusion/support/detail/mpl_iterator_category.hpp new file mode 100644 index 0000000000..fcb00a01ca --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/mpl_iterator_category.hpp @@ -0,0 +1,66 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_MPL_ITERATOR_CATEGORY_07212005_0923) +#define FUSION_MPL_ITERATOR_CATEGORY_07212005_0923 + +namespace boost { namespace mpl +{ + struct forward_iterator_tag; + struct bidirectional_iterator_tag; + struct random_access_iterator_tag; +}} + +namespace boost { namespace fusion +{ + struct forward_traversal_tag; + struct bidirectional_traversal_tag; + struct random_access_traversal_tag; +}} + +namespace boost { namespace fusion { namespace detail +{ + template + struct mpl_iterator_category; + + template <> + struct mpl_iterator_category + { + typedef forward_traversal_tag type; + }; + + template <> + struct mpl_iterator_category + { + typedef bidirectional_traversal_tag type; + }; + + template <> + struct mpl_iterator_category + { + typedef random_access_traversal_tag type; + }; + + template <> + struct mpl_iterator_category + { + typedef forward_traversal_tag type; + }; + + template <> + struct mpl_iterator_category + { + typedef bidirectional_traversal_tag type; + }; + + template <> + struct mpl_iterator_category + { + typedef random_access_traversal_tag type; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/detail/pp_round.hpp b/3rdparty/boost/boost/fusion/support/detail/pp_round.hpp new file mode 100644 index 0000000000..6c43b66f11 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/pp_round.hpp @@ -0,0 +1,72 @@ +/*============================================================================= + Copyright (c) 2011 Thomas Heller + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ + +#ifndef BOOST_BOOST_FUSION_SUPPORT_PP_ROUND_HPP +#define BOOST_BOOST_FUSION_SUPPORT_PP_ROUND_HPP + +#include +#include +#include +#include + +#define BOOST_FUSION_PP_ROUND_UP(N) \ + BOOST_PP_CAT(BOOST_FUSION_PP_DO_ROUND_UP_, N)() \ +/**/ + +#define BOOST_FUSION_PP_DO_ROUND_UP_0() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_1() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_2() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_3() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_4() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_5() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_6() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_7() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_8() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_9() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_10() 10 +#define BOOST_FUSION_PP_DO_ROUND_UP_11() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_12() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_13() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_14() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_15() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_16() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_17() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_18() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_19() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_20() 20 +#define BOOST_FUSION_PP_DO_ROUND_UP_21() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_22() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_23() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_24() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_25() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_26() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_27() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_28() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_29() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_30() 30 +#define BOOST_FUSION_PP_DO_ROUND_UP_31() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_32() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_33() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_34() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_35() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_36() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_37() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_38() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_39() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_40() 40 +#define BOOST_FUSION_PP_DO_ROUND_UP_41() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_42() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_43() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_44() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_45() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_46() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_47() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_48() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_49() 50 +#define BOOST_FUSION_PP_DO_ROUND_UP_50() 50 + +#endif diff --git a/3rdparty/boost/boost/fusion/support/detail/segmented_fold_until_impl.hpp b/3rdparty/boost/boost/fusion/support/detail/segmented_fold_until_impl.hpp new file mode 100644 index 0000000000..6a388bf834 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/detail/segmented_fold_until_impl.hpp @@ -0,0 +1,401 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_FOLD_UNTIL_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_FOLD_UNTIL_IMPL_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// fun(seq, state, context) +// seq: a non-segmented range +// state: the state of the fold so far +// context: the path to the current range +// +// returns: (state', fcontinue) + +namespace boost { namespace fusion +{ + template + struct iterator_range; + + template + struct segmented_iterator; + + namespace result_of + { + template + struct make_segmented_iterator + { + typedef + iterator_range< + Cur + , typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Context::car_type::begin_type + >::type + >::type + >::type + >::type + > + range_type; + + typedef + segmented_iterator > + type; + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::make_segmented_iterator::type + make_segmented_iterator(Cur const& cur, Context const& context) + { + typedef result_of::make_segmented_iterator impl_type; + typedef typename impl_type::type type; + typedef typename impl_type::range_type range_type; + return type(cons(range_type(cur, fusion::end(*context.car.first)), context)); + } + + namespace detail + { + template < + typename Begin + , typename End + , typename State + , typename Context + , typename Fun + , bool IsEmpty + > + struct segmented_fold_until_iterate_skip_empty; + + template < + typename Begin + , typename End + , typename State + , typename Context + , typename Fun + , bool IsDone = result_of::equal_to::type::value + > + struct segmented_fold_until_iterate; + + template < + typename Sequence + , typename State + , typename Context + , typename Fun + , bool IsSegmented = traits::is_segmented::type::value + > + struct segmented_fold_until_impl; + + template + struct segmented_fold_until_on_segments; + + //auto push_context(cur, end, context) + //{ + // return push_back(context, segment_sequence(iterator_range(cur, end))); + //} + + template + struct push_context + { + typedef iterator_range range_type; + typedef cons type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Cur const& cur, End const& end, Context const& context) + { + return cons(range_type(cur, end), context); + } + }; + + //auto make_segmented_iterator(cur, end, context) + //{ + // return segmented_iterator(push_context(cur, end, context)); + //} + // + //auto segmented_fold_until_impl(seq, state, context, fun) + //{ + // if (is_segmented(seq)) + // { + // segmented_fold_until_on_segments(segments(seq), state, context, fun); + // } + // else + // { + // return fun(seq, state, context); + // } + //} + + template < + typename Sequence + , typename State + , typename Context + , typename Fun + , bool IsSegmented + > + struct segmented_fold_until_impl + { + typedef + segmented_fold_until_on_segments< + typename remove_reference< + typename add_const< + typename result_of::segments::type + >::type + >::type + , State + , Context + , Fun + > + impl; + + typedef typename impl::type type; + typedef typename impl::continue_type continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq, State const& state, Context const& context, Fun const& fun) + { + return impl::call(fusion::segments(seq), state, context, fun); + } + }; + + template < + typename Sequence + , typename State + , typename Context + , typename Fun + > + struct segmented_fold_until_impl + { + typedef + typename Fun::template apply + apply_type; + + typedef typename apply_type::type type; + typedef typename apply_type::continue_type continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence& seq, State const& state, Context const& context, Fun const& fun) + { + return apply_type::call(seq, state, context, fun); + } + }; + + //auto segmented_fold_until_on_segments(segs, state, context, fun) + //{ + // auto cur = begin(segs), end = end(segs); + // for (; cur != end; ++cur) + // { + // if (empty(*cur)) + // continue; + // auto context` = push_context(cur, end, context); + // state = segmented_fold_until_impl(*cur, state, context`, fun); + // if (!second(state)) + // return state; + // } + //} + + template + struct continue_wrap + { + typedef typename Apply::continue_type type; + }; + + template + struct segmented_fold_until_iterate_skip_empty + { + // begin != end and !empty(*begin) + typedef + push_context + push_context_impl; + + typedef + typename push_context_impl::type + next_context_type; + + typedef + segmented_fold_until_impl< + typename remove_reference< + typename add_const< + typename result_of::deref::type + >::type + >::type + , State + , next_context_type + , Fun + > + fold_recurse_impl; + + typedef + typename fold_recurse_impl::type + next_state_type; + + typedef + segmented_fold_until_iterate< + typename result_of::next::type + , End + , next_state_type + , Context + , Fun + > + next_iteration_impl; + + typedef + typename mpl::eval_if< + typename fold_recurse_impl::continue_type + , next_iteration_impl + , mpl::identity + >::type + type; + + typedef + typename mpl::eval_if< + typename fold_recurse_impl::continue_type + , continue_wrap + , mpl::identity + >::type + continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Begin const& beg, End const& end, State const& state + , Context const& context, Fun const& fun) + { + return call(beg, end, state, context, fun, typename fold_recurse_impl::continue_type()); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Begin const& beg, End const& end, State const& state + , Context const& context, Fun const& fun, mpl::true_) // continue + { + return next_iteration_impl::call( + fusion::next(beg) + , end + , fold_recurse_impl::call( + *beg + , state + , push_context_impl::call(beg, end, context) + , fun) + , context + , fun); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Begin const& beg, End const& end, State const& state + , Context const& context, Fun const& fun, mpl::false_) // break + { + return fold_recurse_impl::call( + *beg + , state + , push_context_impl::call(beg, end, context) + , fun); + } + }; + + template + struct segmented_fold_until_iterate_skip_empty + { + typedef + segmented_fold_until_iterate< + typename result_of::next::type + , End + , State + , Context + , Fun + > + impl; + + typedef typename impl::type type; + typedef typename impl::continue_type continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Begin const& beg, End const& end, State const& state + , Context const& context, Fun const& fun) + { + return impl::call(fusion::next(beg), end, state, context, fun); + } + }; + + template + struct segmented_fold_until_iterate + { + typedef + typename result_of::empty< + typename remove_reference< + typename result_of::deref::type + >::type + >::type + empty_type; + + typedef + segmented_fold_until_iterate_skip_empty + impl; + + typedef typename impl::type type; + typedef typename impl::continue_type continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Begin const& beg, End const& end, State const& state + , Context const& context, Fun const& fun) + { + return impl::call(beg, end, state, context, fun); + } + }; + + template + struct segmented_fold_until_iterate + { + typedef State type; + typedef mpl::true_ continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Begin const&, End const&, State const& state + , Context const&, Fun const&) + { + return state; + } + }; + + template + struct segmented_fold_until_on_segments + { + typedef + segmented_fold_until_iterate< + typename result_of::begin::type + , typename result_of::end::type + , State + , Context + , Fun + > + impl; + + typedef typename impl::type type; + typedef typename impl::continue_type continue_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Segments& segs, State const& state, Context const& context, Fun const& fun) + { + return impl::call(fusion::begin(segs), fusion::end(segs), state, context, fun); + } + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/is_iterator.hpp b/3rdparty/boost/boost/fusion/support/is_iterator.hpp new file mode 100644 index 0000000000..b48aab8c3f --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/is_iterator.hpp @@ -0,0 +1,21 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_IS_ITERATOR_05062005_1219) +#define FUSION_IS_ITERATOR_05062005_1219 + +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_root; + + template + struct is_fusion_iterator : is_base_of {}; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/is_segmented.hpp b/3rdparty/boost/boost/fusion/support/is_segmented.hpp new file mode 100644 index 0000000000..1326feb346 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/is_segmented.hpp @@ -0,0 +1,55 @@ +/*============================================================================= + Copyright (c) 2006 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_IS_SEGMENTED_03202006_0015) +#define FUSION_IS_SEGMENTED_03202006_0015 + +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct sequence_facade_tag; + struct iterator_range_tag; + + namespace extension + { + template + struct is_segmented_impl + { + template + struct apply + : mpl::false_ + {}; + }; + + template <> + struct is_segmented_impl + { + template + struct apply : Sequence::is_segmented {}; + }; + + template <> + struct is_segmented_impl; + } + + namespace traits + { + template + struct is_segmented + : mpl::bool_< + (bool)extension::is_segmented_impl::type>:: + template apply::type::value + > + { + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/is_sequence.hpp b/3rdparty/boost/boost/fusion/support/is_sequence.hpp new file mode 100644 index 0000000000..95a9423f94 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/is_sequence.hpp @@ -0,0 +1,73 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_IS_SEQUENCE_05052005_1002) +#define FUSION_IS_SEQUENCE_05052005_1002 + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct non_fusion_tag; + struct boost_tuple_tag; // boost::tuples::tuple tag + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + namespace extension + { + template + struct is_sequence_impl + { + template + struct apply + : is_convertible + {}; + }; + + template <> + struct is_sequence_impl + { + template + struct apply : mpl::false_ {}; + }; + + template <> + struct is_sequence_impl; + + template <> + struct is_sequence_impl; + + template <> + struct is_sequence_impl; + + template <> + struct is_sequence_impl; + } + + namespace traits + { + template + struct is_sequence + : mpl::bool_< + (bool)extension::is_sequence_impl< + typename fusion::detail::tag_of::type + >::template apply::type::value + > + {}; + + using detail::is_native_fusion_sequence; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/is_view.hpp b/3rdparty/boost/boost/fusion/support/is_view.hpp new file mode 100644 index 0000000000..b2b52c423e --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/is_view.hpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_IS_VIEW_03202006_0015) +#define FUSION_IS_VIEW_03202006_0015 + +#include +#include +#include + +namespace boost { namespace fusion +{ + // Special tags: + struct non_fusion_tag; + struct sequence_facade_tag; + struct boost_tuple_tag; // boost::tuples::tuple tag + struct boost_array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag + + namespace extension + { + template + struct is_view_impl + { + template + struct apply + { + typedef typename T::is_view type; + }; + }; + + template <> + struct is_view_impl + { + template + struct apply : mpl::false_ {}; + }; + + template <> + struct is_view_impl + { + template + struct apply : Sequence::is_view {}; + }; + + template <> + struct is_view_impl; + + template <> + struct is_view_impl; + + template <> + struct is_view_impl; + + template <> + struct is_view_impl; + } + + namespace traits + { + template + struct is_view : + mpl::bool_< + (bool)extension::is_view_impl::type>:: + template apply::type::value + > + {}; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/iterator_base.hpp b/3rdparty/boost/boost/fusion/support/iterator_base.hpp new file mode 100644 index 0000000000..5d8ce3abb7 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/iterator_base.hpp @@ -0,0 +1,36 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ITERATOR_BASE_05042005_1008) +#define FUSION_ITERATOR_BASE_05042005_1008 + +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_root {}; + + template + struct iterator_base : iterator_root + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + Iterator const& + cast() const BOOST_NOEXCEPT + { + return static_cast(*this); + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + Iterator& + cast() BOOST_NOEXCEPT + { + return static_cast(*this); + } + }; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/segmented_fold_until.hpp b/3rdparty/boost/boost/fusion/support/segmented_fold_until.hpp new file mode 100644 index 0000000000..8fb09ee38d --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/segmented_fold_until.hpp @@ -0,0 +1,71 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_FOLD_UNTIL_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_FOLD_UNTIL_HPP_INCLUDED + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + //auto segmented_fold_until(seq, state, fun) + //{ + // return first(segmented_fold_until_impl(seq, state, nil_, fun)); + //} + + namespace result_of + { + template + struct segmented_fold_until + { + typedef + detail::segmented_fold_until_impl< + Sequence + , State + , fusion::nil_ + , Fun + > + filter; + + typedef + typename filter::type + type; + }; + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_disable_if< + is_const + , result_of::segmented_fold_until + >::type + segmented_fold_until(Sequence& seq, State const& state, Fun const& fun) + { + typedef + typename result_of::segmented_fold_until::filter + filter; + + return filter::call(seq, state, fusion::nil_(), fun); + } + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::segmented_fold_until::type + segmented_fold_until(Sequence const& seq, State const& state, Fun const& fun) + { + typedef + typename result_of::segmented_fold_until::filter + filter; + + return filter::call(seq, state, fusion::nil_(), fun); + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/sequence_base.hpp b/3rdparty/boost/boost/fusion/support/sequence_base.hpp new file mode 100644 index 0000000000..2f9320e6c8 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/sequence_base.hpp @@ -0,0 +1,59 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2007 Tobias Schwinger + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SEQUENCE_BASE_04182005_0737) +#define FUSION_SEQUENCE_BASE_04182005_0737 + +#include +#include +#include + +namespace boost { namespace fusion +{ + namespace detail + { + struct from_sequence_convertible_type + {}; + } + + template + struct sequence_base + { + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + Sequence const& + derived() const BOOST_NOEXCEPT + { + return static_cast(*this); + } + + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + Sequence& + derived() BOOST_NOEXCEPT + { + return static_cast(*this); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + operator detail::from_sequence_convertible_type() const BOOST_NOEXCEPT + { + return detail::from_sequence_convertible_type(); + } + }; + + struct fusion_sequence_tag; +}} + +namespace boost { namespace mpl +{ + // Deliberately break mpl::begin, so it doesn't lie that a Fusion sequence + // is not an MPL sequence by returning mpl::void_. + // In other words: Fusion Sequences are always MPL Sequences, but they can + // be incompletely defined. + template<> struct begin_impl< boost::fusion::fusion_sequence_tag >; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/tag_of.hpp b/3rdparty/boost/boost/fusion/support/tag_of.hpp new file mode 100644 index 0000000000..61cb3b19ae --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/tag_of.hpp @@ -0,0 +1,83 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_TAG_OF_09232005_0845) +#define FUSION_TAG_OF_09232005_0845 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost +{ + template + class array; // forward + + namespace tuples + { + struct null_type; + + template < + class T0, class T1, class T2, class T3, class T4, + class T5, class T6, class T7, class T8, class T9 + > + class tuple; + + template + struct cons; + } +} + +namespace boost { namespace fusion +{ + struct non_fusion_tag; + struct mpl_sequence_tag; + + namespace detail + { + BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag) + + template + struct tag_of_impl + : mpl::if_, + mpl::identity, + mpl::identity >::type + {}; + + template + struct tag_of_impl< + Sequence + , typename boost::enable_if >::type> + { + typedef typename Sequence::fusion_tag type; + }; + } + + namespace traits + { + template + struct tag_of + : boost::fusion::detail::tag_of_impl + {}; + } + + namespace detail + { + template + struct tag_of + : traits::tag_of::type> + {}; + } +}} +#endif diff --git a/3rdparty/boost/boost/fusion/support/tag_of_fwd.hpp b/3rdparty/boost/boost/fusion/support/tag_of_fwd.hpp new file mode 100644 index 0000000000..ba434d9334 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/tag_of_fwd.hpp @@ -0,0 +1,20 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the 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_FUSION_TAG_OF_FWD_31122005_1445) +#define BOOST_FUSION_TAG_OF_FWD_31122005_1445 + +namespace boost { namespace fusion +{ + namespace traits + { + template + struct tag_of; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/support/void.hpp b/3rdparty/boost/boost/fusion/support/void.hpp new file mode 100644 index 0000000000..7650519012 --- /dev/null +++ b/3rdparty/boost/boost/fusion/support/void.hpp @@ -0,0 +1,15 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SUPPORT_VOID_20070706_2125) +#define BOOST_FUSION_SUPPORT_VOID_20070706_2125 + +namespace boost { namespace fusion +{ + struct void_ {}; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/iterator_range.hpp b/3rdparty/boost/boost/fusion/view/iterator_range.hpp new file mode 100644 index 0000000000..78d6ffad9e --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range.hpp @@ -0,0 +1,13 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SEQUENCE_VIEW_ITERATOR_RANGE_10022005_0610) +#define FUSION_SEQUENCE_VIEW_ITERATOR_RANGE_10022005_0610 + +#include +#include + +#endif diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/at_impl.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/at_impl.hpp new file mode 100644 index 0000000000..20f1758310 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/at_impl.hpp @@ -0,0 +1,46 @@ +/*============================================================================= + Copyright (c) 2007 Tobias Schwinger + + Distributed under the 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_FUSION_ITERATOR_RANGE_AT_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_ITERATOR_RANGE_AT_IMPL_HPP_INCLUDED + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + + namespace extension + { + template + struct at_impl; + + template <> + struct at_impl + { + template + struct apply + { + typedef typename Seq::begin_type begin_type; + typedef typename result_of::advance::type pos; + typedef typename result_of::deref::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Seq& s) + { + return * fusion::advance(s.first); + } + }; + }; + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/begin_impl.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/begin_impl.hpp new file mode 100644 index 0000000000..7e00dec091 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/begin_impl.hpp @@ -0,0 +1,42 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BEGIN_IMPL_05062005_1226) +#define FUSION_BEGIN_IMPL_05062005_1226 + +#include + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + + namespace extension + { + template + struct begin_impl; + + template <> + struct begin_impl + { + template + struct apply + { + typedef typename Sequence::begin_type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s) + { + return s.first; + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/end_impl.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/end_impl.hpp new file mode 100644 index 0000000000..b76aa91cd5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/end_impl.hpp @@ -0,0 +1,42 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_END_IMPL_05062005_1226) +#define FUSION_END_IMPL_05062005_1226 + +#include + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + + namespace extension + { + template + struct end_impl; + + template <> + struct end_impl + { + template + struct apply + { + typedef typename Sequence::end_type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s) + { + return s.last; + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp new file mode 100644 index 0000000000..88f4358bdf --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp @@ -0,0 +1,67 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_ITERATOR_RANGE_IS_SEGMENTED_HPP_INCLUDED) +#define BOOST_FUSION_ITERATOR_RANGE_IS_SEGMENTED_HPP_INCLUDED + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + + template + struct segmented_iterator; + + namespace extension + { + template + struct is_segmented_impl; + + // An iterator_range of segmented_iterators is segmented + template <> + struct is_segmented_impl + { + private: + template + struct is_segmented_iterator + : mpl::false_ + {}; + + template + struct is_segmented_iterator + : is_segmented_iterator + {}; + + template + struct is_segmented_iterator + : is_segmented_iterator + {}; + + template + struct is_segmented_iterator > + : mpl::true_ + {}; + + public: + template + struct apply + : is_segmented_iterator + { + BOOST_MPL_ASSERT_RELATION( + is_segmented_iterator::value + , == + , is_segmented_iterator::value); + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp new file mode 100644 index 0000000000..4b2c11ebe2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp @@ -0,0 +1,556 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_RANGE_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_ITERATOR_RANGE_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Invariants: +// - Each segmented iterator has a stack +// - Each value in the stack is an iterator range +// - The range at the top of the stack points to values +// - All other ranges point to ranges +// - The front of each range in the stack (besides the +// topmost) is the range above it + +namespace boost { namespace fusion +{ + template + struct iterator_range; + + namespace result_of + { + template + struct push_back; + + template + struct push_front; + } + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::push_back + >::type + push_back(Sequence const& seq, T const& x); + + template + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + lazy_enable_if< + traits::is_sequence + , result_of::push_front + >::type + push_front(Sequence const& seq, T const& x); +}} + +namespace boost { namespace fusion { namespace detail +{ + //auto make_segment_sequence_front(stack_begin) + //{ + // switch (size(stack_begin)) + // { + // case 1: + // return nil_; + // case 2: + // // car(cdr(stack_begin)) is a range over values. + // assert(end(front(car(stack_begin))) == end(car(cdr(stack_begin)))); + // return iterator_range(begin(car(cdr(stack_begin))), end(front(car(stack_begin)))); + // default: + // // car(cdr(stack_begin)) is a range over segments. We replace the + // // front with a view that is restricted. + // assert(end(segments(front(car(stack_begin)))) == end(car(cdr(stack_begin)))); + // return segment_sequence( + // push_front( + // // The following could be a segment_sequence. It then gets wrapped + // // in a single_view, and push_front puts it in a join_view with the + // // following iterator_range. + // iterator_range(next(begin(car(cdr(stack_begin)))), end(segments(front(car(stack_begin))))), + // make_segment_sequence_front(cdr(stack_begin)))); + // } + //} + + template + struct make_segment_sequence_front + { + // assert(end(segments(front(car(stack_begin)))) == end(car(cdr(stack_begin)))); + BOOST_MPL_ASSERT(( + result_of::equal_to< + typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::segments< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + >::type + >::type + >::type + , typename Stack::cdr_type::car_type::end_type + >)); + + typedef + iterator_range< + typename result_of::next< + typename Stack::cdr_type::car_type::begin_type + >::type + , typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::segments< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + >::type + >::type + >::type + > + rest_type; + + typedef + make_segment_sequence_front + recurse; + + typedef + segment_sequence< + typename result_of::push_front< + rest_type const + , typename recurse::type + >::type + > + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const& stack) + { + //return segment_sequence( + // push_front( + // iterator_range(next(begin(car(cdr(stack_begin)))), end(segments(front(car(stack_begin))))), + // make_segment_sequence_front(cdr(stack_begin)))); + return type( + fusion::push_front( + rest_type(fusion::next(stack.cdr.car.first), fusion::end(fusion::segments(*stack.car.first))) + , recurse::call(stack.cdr))); + } + }; + + template + struct make_segment_sequence_front + { + // assert(end(front(car(stack_begin))) == end(car(cdr(stack_begin)))); + BOOST_MPL_ASSERT(( + result_of::equal_to< + typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + , typename Stack::cdr_type::car_type::end_type + >)); + + typedef + iterator_range< + typename Stack::cdr_type::car_type::begin_type + , typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + > + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const& stack) + { + // return iterator_range(begin(car(cdr(stack_begin))), end(front(car(stack_begin)))); + return type(stack.cdr.car.first, fusion::end(*stack.car.first)); + } + }; + + template + struct make_segment_sequence_front + { + typedef typename Stack::cdr_type type; // nil_ + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const &stack) + { + return stack.cdr; + } + }; + + //auto make_segment_sequence_back(stack_end) + //{ + // switch (size(stack_end)) + // { + // case 1: + // return nil_; + // case 2: + // // car(cdr(stack_back)) is a range over values. + // assert(end(front(car(stack_end))) == end(car(cdr(stack_end)))); + // return iterator_range(begin(front(car(stack_end))), begin(car(cdr(stack_end)))); + // default: + // // car(cdr(stack_begin)) is a range over segments. We replace the + // // back with a view that is restricted. + // assert(end(segments(front(car(stack_end)))) == end(car(cdr(stack_end)))); + // return segment_sequence( + // push_back( + // iterator_range(begin(segments(front(car(stack_end)))), begin(car(cdr(stack_end)))), + // make_segment_sequence_back(cdr(stack_end)))); + // } + //} + + template + struct make_segment_sequence_back + { + // assert(end(segments(front(car(stack_begin)))) == end(car(cdr(stack_begin)))); + BOOST_MPL_ASSERT(( + result_of::equal_to< + typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::segments< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + >::type + >::type + >::type + , typename Stack::cdr_type::car_type::end_type + >)); + + typedef + iterator_range< + typename result_of::begin< + typename remove_reference< + typename add_const< + typename result_of::segments< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + >::type + >::type + >::type + , typename Stack::cdr_type::car_type::begin_type + > + rest_type; + + typedef + make_segment_sequence_back + recurse; + + typedef + segment_sequence< + typename result_of::push_back< + rest_type const + , typename recurse::type + >::type + > + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const& stack) + { + // return segment_sequence( + // push_back( + // iterator_range(begin(segments(front(car(stack_end)))), begin(car(cdr(stack_end)))), + // make_segment_sequence_back(cdr(stack_end)))); + return type( + fusion::push_back( + rest_type(fusion::begin(fusion::segments(*stack.car.first)), stack.cdr.car.first) + , recurse::call(stack.cdr))); + } + }; + + template + struct make_segment_sequence_back + { + // assert(end(front(car(stack_end))) == end(car(cdr(stack_end)))); + BOOST_MPL_ASSERT(( + result_of::equal_to< + typename result_of::end< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + , typename Stack::cdr_type::car_type::end_type + >)); + + typedef + iterator_range< + typename result_of::begin< + typename remove_reference< + typename add_const< + typename result_of::deref< + typename Stack::car_type::begin_type + >::type + >::type + >::type + >::type + , typename Stack::cdr_type::car_type::begin_type + > + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const& stack) + { + // return iterator_range(begin(front(car(stack_end))), begin(car(cdr(stack_end)))); + return type(fusion::begin(*stack.car.first), stack.cdr.car.first); + } + }; + + template + struct make_segment_sequence_back + { + typedef typename Stack::cdr_type type; // nil_ + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Stack const& stack) + { + return stack.cdr; + } + }; + + //auto make_segmented_range_reduce(stack_begin, stack_end) + //{ + // if (size(stack_begin) == 1 && size(stack_end) == 1) + // { + // return segment_sequence( + // single_view( + // iterator_range(begin(car(stack_begin)), begin(car(stack_end))))); + // } + // else + // { + // // We are in the case where both begin_stack and/or end_stack have + // // more than one element. Throw away any part of the tree where + // // begin and end refer to the same segment. + // if (begin(car(stack_begin)) == begin(car(stack_end))) + // { + // return make_segmented_range_reduce(cdr(stack_begin), cdr(stack_end)); + // } + // else + // { + // // We are in the case where begin_stack and end_stack (a) have + // // more than one element each, and (b) they point to different + // // segments. We must construct a segmented sequence. + // return segment_sequence( + // push_back( + // push_front( + // iterator_range( + // fusion::next(begin(car(stack_begin))), + // begin(car(stack_end))), // a range of (possibly segmented) ranges. + // make_segment_sequence_front(stack_begin)), // should be a (possibly segmented) range. + // make_segment_sequence_back(stack_end))); // should be a (possibly segmented) range. + // } + // } + //} + + template < + typename StackBegin + , typename StackEnd + , int StackBeginSize = StackBegin::size::value + , int StackEndSize = StackEnd::size::value> + struct make_segmented_range_reduce; + + template < + typename StackBegin + , typename StackEnd + , bool SameSegment +#if !(BOOST_WORKAROUND(BOOST_GCC, >= 40000) && BOOST_WORKAROUND(BOOST_GCC, < 40200)) + = result_of::equal_to< + typename StackBegin::car_type::begin_type + , typename StackEnd::car_type::begin_type + >::type::value +#endif + > + struct make_segmented_range_reduce2 + { + typedef + iterator_range< + typename result_of::next< + typename StackBegin::car_type::begin_type + >::type + , typename StackEnd::car_type::begin_type + > + rest_type; + + typedef + segment_sequence< + typename result_of::push_back< + typename result_of::push_front< + rest_type const + , typename make_segment_sequence_front::type + >::type const + , typename make_segment_sequence_back::type + >::type + > + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(StackBegin stack_begin, StackEnd stack_end) + { + //return segment_sequence( + // push_back( + // push_front( + // iterator_range( + // fusion::next(begin(car(stack_begin))), + // begin(car(stack_end))), // a range of (possibly segmented) ranges. + // make_segment_sequence_front(stack_begin)), // should be a (possibly segmented) range. + // make_segment_sequence_back(stack_end))); // should be a (possibly segmented) range. + return type( + fusion::push_back( + fusion::push_front( + rest_type(fusion::next(stack_begin.car.first), stack_end.car.first) + , make_segment_sequence_front::call(stack_begin)) + , make_segment_sequence_back::call(stack_end))); + } + }; + + template + struct make_segmented_range_reduce2 + { + typedef + make_segmented_range_reduce< + typename StackBegin::cdr_type + , typename StackEnd::cdr_type + > + impl; + + typedef + typename impl::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(StackBegin stack_begin, StackEnd stack_end) + { + return impl::call(stack_begin.cdr, stack_end.cdr); + } + }; + + template + struct make_segmented_range_reduce + : make_segmented_range_reduce2= 40000) && BOOST_WORKAROUND(BOOST_GCC, < 40200) + , result_of::equal_to< + typename StackBegin::car_type::begin_type + , typename StackEnd::car_type::begin_type + >::type::value +#endif + > + {}; + + template + struct make_segmented_range_reduce + { + typedef + iterator_range< + typename StackBegin::car_type::begin_type + , typename StackEnd::car_type::begin_type + > + range_type; + + typedef + single_view + segment_type; + + typedef + segment_sequence + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(StackBegin stack_begin, StackEnd stack_end) + { + //return segment_sequence( + // single_view( + // iterator_range(begin(car(stack_begin)), begin(car(stack_end))))); + return type(segment_type(range_type(stack_begin.car.first, stack_end.car.first))); + } + }; + + //auto make_segmented_range(begin, end) + //{ + // return make_segmented_range_reduce(reverse(begin.context), reverse(end.context)); + //} + + template + struct make_segmented_range + { + typedef reverse_cons reverse_begin_cons; + typedef reverse_cons reverse_end_cons; + + typedef + make_segmented_range_reduce< + typename reverse_begin_cons::type + , typename reverse_end_cons::type + > + impl; + + typedef typename impl::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Begin const& begin, End const& end) + { + return impl::call( + reverse_begin_cons::call(begin.context) + , reverse_end_cons::call(end.context)); + } + }; + +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/segments_impl.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/segments_impl.hpp new file mode 100644 index 0000000000..bbf4c45ad3 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/segments_impl.hpp @@ -0,0 +1,54 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_ITERATOR_RANGE_SEGMENTS_HPP_INCLUDED) +#define BOOST_FUSION_ITERATOR_RANGE_SEGMENTS_HPP_INCLUDED + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + + namespace extension + { + template + struct segments_impl; + + template <> + struct segments_impl + { + template + struct apply + { + typedef + detail::make_segmented_range< + typename Sequence::begin_type + , typename Sequence::end_type + > + impl; + + BOOST_MPL_ASSERT((traits::is_segmented)); + + typedef + typename result_of::segments::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call(Sequence & seq) + { + return fusion::segments(impl::call(seq.first, seq.last)); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/size_impl.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/size_impl.hpp new file mode 100644 index 0000000000..0678e5dde1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/size_impl.hpp @@ -0,0 +1,38 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ + +#if !defined(BOOST_FUSION_ITERATOR_RANGE_SIZE_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_ITERATOR_RANGE_SIZE_IMPL_HPP_INCLUDED + +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + + namespace extension + { + template + struct size_impl; + + template <> + struct size_impl + { + template + struct apply + : result_of::distance< + typename Seq::begin_type, + typename Seq::end_type + > + {}; + }; + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/detail/value_at_impl.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/detail/value_at_impl.hpp new file mode 100644 index 0000000000..652b8da192 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/detail/value_at_impl.hpp @@ -0,0 +1,39 @@ +/*============================================================================= + Copyright (c) 2007 Tobias Schwinger + + Distributed under the 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_FUSION_ITERATOR_RANGE_VALUE_AT_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_ITERATOR_RANGE_VALUE_AT_IMPL_HPP_INCLUDED + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + + namespace extension + { + template + struct value_at_impl; + + template <> + struct value_at_impl + { + template + struct apply + { + typedef typename Seq::begin_type begin_type; + typedef typename result_of::advance::type pos; + typedef typename result_of::value_of::type type; + }; + }; + } +}} + +#endif + diff --git a/3rdparty/boost/boost/fusion/view/iterator_range/iterator_range.hpp b/3rdparty/boost/boost/fusion/view/iterator_range/iterator_range.hpp new file mode 100644 index 0000000000..272abcd911 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/iterator_range/iterator_range.hpp @@ -0,0 +1,63 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ITERATOR_RANGE_05062005_1224) +#define FUSION_ITERATOR_RANGE_05062005_1224 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined (BOOST_MSVC) +# pragma warning(push) +# pragma warning (disable: 4512) // assignment operator could not be generated. +#endif + +namespace boost { namespace fusion +{ + struct iterator_range_tag; + struct fusion_sequence_tag; + + template + struct iterator_range : sequence_base > + { + typedef typename convert_iterator::type begin_type; + typedef typename convert_iterator::type end_type; + typedef iterator_range_tag fusion_tag; + typedef fusion_sequence_tag tag; // this gets picked up by MPL + typedef mpl::true_ is_view; + + typedef typename traits::category_of::type category; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + iterator_range(First const& in_first, Last const& in_last) + : first(convert_iterator::call(in_first)) + , last(convert_iterator::call(in_last)) {} + + begin_type first; + end_type last; + }; +}} + +#if defined (BOOST_MSVC) +# pragma warning(pop) +#endif + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/begin_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/begin_impl.hpp new file mode 100644 index 0000000000..b7a961a7f2 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/begin_impl.hpp @@ -0,0 +1,71 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_BEGIN_IMPL_07162005_0115) +#define FUSION_BEGIN_IMPL_07162005_0115 + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct joint_view_tag; + + template + struct joint_view_iterator; + + namespace extension + { + template + struct begin_impl; + + template <> + struct begin_impl + { + template + struct apply + { + typedef typename Sequence::first_type first_type; + typedef typename Sequence::last_type last_type; + typedef typename Sequence::concat_type concat_type; + typedef typename Sequence::category category; + typedef result_of::equal_to equal_to; + + typedef typename + mpl::if_< + equal_to + , concat_type + , joint_view_iterator + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s, mpl::true_) + { + return s.concat(); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s, mpl::false_) + { + return type(s.first(), s.concat()); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s) + { + return call(s, equal_to()); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/deref_data_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/deref_data_impl.hpp new file mode 100644 index 0000000000..2d5f8317e1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/deref_data_impl.hpp @@ -0,0 +1,39 @@ +/*============================================================================= + Copyright (c) 2009 Christopher Schmidt + + Distributed under the 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_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP +#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP + +#include +#include + +namespace boost { namespace fusion { namespace extension +{ + template + struct deref_data_impl; + + template <> + struct deref_data_impl + { + template + struct apply + { + typedef typename + result_of::deref_data::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(It const& it) + { + return fusion::deref_data(it.first); + } + }; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/deref_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/deref_impl.hpp new file mode 100644 index 0000000000..0e1e39fffa --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/deref_impl.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DEREF_IMPL_07162005_0137) +#define FUSION_DEREF_IMPL_07162005_0137 + +#include +#include + +namespace boost { namespace fusion +{ + struct joint_view_iterator_tag; + + namespace extension + { + template + struct deref_impl; + + template <> + struct deref_impl + : detail::adapt_deref_traits {}; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/end_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/end_impl.hpp new file mode 100644 index 0000000000..0b4b9b0abd --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/end_impl.hpp @@ -0,0 +1,42 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_END_IMPL_07162005_0128) +#define FUSION_END_IMPL_07162005_0128 + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct joint_view_tag; + + namespace extension + { + template + struct end_impl; + + template <> + struct end_impl + { + template + struct apply + { + typedef typename Sequence::concat_last_type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s) + { + return s.concat_last(); + } + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/key_of_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/key_of_impl.hpp new file mode 100644 index 0000000000..ec682f614d --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/key_of_impl.hpp @@ -0,0 +1,29 @@ +/*============================================================================= + Copyright (c) 2009 Christopher Schmidt + + Distributed under the 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_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP +#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP + +#include +#include + +namespace boost { namespace fusion { namespace extension +{ + template + struct key_of_impl; + + template <> + struct key_of_impl + { + template + struct apply + : result_of::key_of + {}; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/next_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/next_impl.hpp new file mode 100644 index 0000000000..a7d18757da --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/next_impl.hpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_NEXT_IMPL_07162005_0136) +#define FUSION_NEXT_IMPL_07162005_0136 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct joint_view_iterator_tag; + + template + struct joint_view_iterator; + + namespace extension + { + template + struct next_impl; + + template <> + struct next_impl + { + template + struct apply + { + typedef typename Iterator::first_type first_type; + typedef typename Iterator::last_type last_type; + typedef typename Iterator::concat_type concat_type; + typedef typename Iterator::category category; + typedef typename result_of::next::type next_type; + typedef result_of::equal_to equal_to; + + typedef typename + mpl::if_< + equal_to + , concat_type + , joint_view_iterator + >::type + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i, mpl::true_) + { + return i.concat; + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i, mpl::false_) + { + return type(fusion::next(i.first), i.concat); + } + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return call(i, equal_to()); + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp new file mode 100644 index 0000000000..f797135b39 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp @@ -0,0 +1,29 @@ +/*============================================================================= + Copyright (c) 2009 Christopher Schmidt + + Distributed under the 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_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP +#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP + +#include +#include + +namespace boost { namespace fusion { namespace extension +{ + template + struct value_of_data_impl; + + template <> + struct value_of_data_impl + { + template + struct apply + : result_of::value_of_data + {}; + }; +}}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/joint_view/detail/value_of_impl.hpp b/3rdparty/boost/boost/fusion/view/joint_view/detail/value_of_impl.hpp new file mode 100644 index 0000000000..f058a60cbc --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/detail/value_of_impl.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_VALUE_IMPL_07162005_0132) +#define FUSION_VALUE_IMPL_07162005_0132 + +#include +#include + +namespace boost { namespace fusion +{ + struct joint_view_iterator_tag; + + namespace extension + { + template + struct value_of_impl; + + template <> + struct value_of_impl + : detail::adapt_value_traits {}; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/joint_view/joint_view.hpp b/3rdparty/boost/boost/fusion/view/joint_view/joint_view.hpp new file mode 100644 index 0000000000..03e38d694c --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/joint_view.hpp @@ -0,0 +1,83 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_JOINT_VIEW_07162005_0140) +#define FUSION_JOINT_VIEW_07162005_0140 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct joint_view_tag; + struct forward_traversal_tag; + struct fusion_sequence_tag; + + template + struct joint_view : sequence_base > + { + typedef joint_view_tag fusion_tag; + typedef fusion_sequence_tag tag; // this gets picked up by MPL + typedef typename + mpl::eval_if< + mpl::and_< + traits::is_associative + , traits::is_associative + > + , mpl::inherit2 + , mpl::identity + >::type + category; + typedef mpl::true_ is_view; + + typedef typename result_of::begin::type first_type; + typedef typename result_of::end::type last_type; + typedef typename result_of::begin::type concat_type; + typedef typename result_of::end::type concat_last_type; + typedef typename mpl::int_< + result_of::size::value + result_of::size::value> + size; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + joint_view(Sequence1& in_seq1, Sequence2& in_seq2) + : seq1(in_seq1) + , seq2(in_seq2) + {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + first_type first() const { return fusion::begin(seq1); } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + concat_type concat() const { return fusion::begin(seq2); } + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + concat_last_type concat_last() const { return fusion::end(seq2); } + + // silence MSVC warning C4512: assignment operator could not be generated + BOOST_DELETED_FUNCTION(joint_view& operator= (joint_view const&)) + + private: + typename mpl::if_, Sequence1, Sequence1&>::type seq1; + typename mpl::if_, Sequence2, Sequence2&>::type seq2; + }; +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/joint_view/joint_view_fwd.hpp b/3rdparty/boost/boost/fusion/view/joint_view/joint_view_fwd.hpp new file mode 100644 index 0000000000..c3e3b45e83 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/joint_view_fwd.hpp @@ -0,0 +1,18 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_JOINT_VIEW_FWD_HPP_INCLUDED) +#define BOOST_FUSION_JOINT_VIEW_FWD_HPP_INCLUDED + +namespace boost { namespace fusion +{ + struct joint_view_tag; + + template + struct joint_view; +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/joint_view/joint_view_iterator.hpp b/3rdparty/boost/boost/fusion/view/joint_view/joint_view_iterator.hpp new file mode 100644 index 0000000000..f6db30915e --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/joint_view/joint_view_iterator.hpp @@ -0,0 +1,69 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_JOINT_VIEW_ITERATOR_07162005_0140) +#define FUSION_JOINT_VIEW_ITERATOR_07162005_0140 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct joint_view_iterator_tag; + struct forward_traversal_tag; + + template + struct joint_view_iterator + : iterator_base > + { + typedef convert_iterator first_converter; + typedef convert_iterator last_converter; + typedef convert_iterator concat_converter; + + typedef typename first_converter::type first_type; + typedef typename last_converter::type last_type; + typedef typename concat_converter::type concat_type; + + typedef joint_view_iterator_tag fusion_tag; + typedef Category category; + BOOST_STATIC_ASSERT((!result_of::equal_to::value)); + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + joint_view_iterator(First const& in_first, Concat const& in_concat) + : first(first_converter::call(in_first)) + , concat(concat_converter::call(in_concat)) + {} + + first_type first; + concat_type concat; + + // silence MSVC warning C4512: assignment operator could not be generated + BOOST_DELETED_FUNCTION(joint_view_iterator& operator= (joint_view_iterator const&)) + }; +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::joint_view_iterator > + { }; +} +#endif + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/advance_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/advance_impl.hpp new file mode 100644 index 0000000000..5af22321b9 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/advance_impl.hpp @@ -0,0 +1,49 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ + +#if !defined(BOOST_FUSION_SINGLE_VIEW_ADVANCE_IMPL_JUL_07_2011_1348PM) +#define BOOST_FUSION_SINGLE_VIEW_ADVANCE_IMPL_JUL_07_2011_1348PM + +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + + template + struct single_view_iterator; + + namespace extension + { + template + struct advance_impl; + + template<> + struct advance_impl + { + template + struct apply + { + typedef single_view_iterator< + typename Iterator::single_view_type, + typename mpl::plus::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.view); + } + }; + }; + } + +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/at_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/at_impl.hpp new file mode 100644 index 0000000000..6c4c7579b6 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/at_impl.hpp @@ -0,0 +1,46 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ + +#if !defined(BOOST_FUSION_SINGLE_VIEW_AT_IMPL_JUL_07_2011_1348PM) +#define BOOST_FUSION_SINGLE_VIEW_AT_IMPL_JUL_07_2011_1348PM + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_tag; + + namespace extension + { + template + struct at_impl; + + template<> + struct at_impl + { + template + struct apply + { + BOOST_MPL_ASSERT((mpl::equal_to >)); + typedef typename Sequence::value_type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& seq) + { + return seq.val; + } + }; + }; + } + +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/begin_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/begin_impl.hpp new file mode 100644 index 0000000000..d6bca8f6b5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/begin_impl.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_BEGIN_IMPL_05052005_0305) +#define BOOST_FUSION_SINGLE_VIEW_BEGIN_IMPL_05052005_0305 + +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_tag; + + template + struct single_view_iterator; + + namespace extension + { + template + struct begin_impl; + + template <> + struct begin_impl + { + template + struct apply + { + typedef single_view_iterator > type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& seq) + { + return type(seq); + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/deref_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/deref_impl.hpp new file mode 100644 index 0000000000..acb90d836b --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/deref_impl.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_DEREF_IMPL_05052005_0258) +#define BOOST_FUSION_SINGLE_VIEW_DEREF_IMPL_05052005_0258 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + + namespace extension + { + template + struct deref_impl; + + template <> + struct deref_impl + { + template + struct apply + { + BOOST_MPL_ASSERT((mpl::equal_to >)); + typedef typename Iterator::value_type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return i.view.val; + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/distance_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/distance_impl.hpp new file mode 100644 index 0000000000..9cd85fdc31 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/distance_impl.hpp @@ -0,0 +1,45 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ + +#if !defined(BOOST_FUSION_SINGLE_VIEW_DISTANCE_IMPL_JUL_07_2011_1348PM) +#define BOOST_FUSION_SINGLE_VIEW_DISTANCE_IMPL_JUL_07_2011_1348PM + +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + + namespace extension + { + template + struct distance_impl; + + template<> + struct distance_impl + { + template + struct apply + : mpl::minus + { + typedef typename mpl::minus::type type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(First const& /*first*/, Last const& /*last*/) + { + return type(); + } + }; + }; + } + +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/end_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/end_impl.hpp new file mode 100644 index 0000000000..d662ac246b --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/end_impl.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_END_IMPL_05052005_0332) +#define BOOST_FUSION_SINGLE_VIEW_END_IMPL_05052005_0332 + +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_tag; + + template + struct single_view_iterator; + + namespace extension + { + template + struct end_impl; + + template <> + struct end_impl + { + template + struct apply + { + typedef single_view_iterator > type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& seq) + { + return type(seq); + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/equal_to_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/equal_to_impl.hpp new file mode 100644 index 0000000000..a14b4c5128 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/equal_to_impl.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ + +#if !defined(BOOST_FUSION_SINGLE_VIEW_ITERATOR_JUL_07_2011_1348PM) +#define BOOST_FUSION_SINGLE_VIEW_ITERATOR_JUL_07_2011_1348PM + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + + namespace extension + { + template + struct equal_to_impl; + + template<> + struct equal_to_impl + { + template + struct apply + : mpl::equal_to + { + BOOST_MPL_ASSERT((is_same::type, + typename add_const::type>)); + }; + }; + } +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/next_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/next_impl.hpp new file mode 100644 index 0000000000..55a4ff11b4 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/next_impl.hpp @@ -0,0 +1,55 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_NEXT_IMPL_05052005_0331) +#define BOOST_FUSION_SINGLE_VIEW_NEXT_IMPL_05052005_0331 + +#include +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + + template + struct single_view_iterator; + + namespace extension + { + template + struct next_impl; + + template <> + struct next_impl + { + template + struct apply + { + typedef single_view_iterator< + typename Iterator::single_view_type, + typename mpl::next::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + // Workaround for ICE on GCC 4.0.0. + // see https://svn.boost.org/trac/boost/ticket/5808 + typedef typename type::position position; + BOOST_STATIC_ASSERT((position::value < 2)); + return type(i.view); + } + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/prior_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/prior_impl.hpp new file mode 100644 index 0000000000..823f96e5a5 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/prior_impl.hpp @@ -0,0 +1,48 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_PRIOR_IMPL_JUL_07_2011_1348PM) +#define BOOST_FUSION_SINGLE_VIEW_PRIOR_IMPL_JUL_07_2011_1348PM + +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + + template + struct single_view_iterator; + + namespace extension + { + template + struct prior_impl; + + template <> + struct prior_impl + { + template + struct apply + { + typedef single_view_iterator< + typename Iterator::single_view_type, + typename mpl::prior::type> + type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.view); + } + }; + }; + } + +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/size_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/size_impl.hpp new file mode 100644 index 0000000000..eba89cdd8d --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/size_impl.hpp @@ -0,0 +1,33 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SINGLE_VIEW_SIZE_IMPL_JUL_07_2011_1348PM) +#define FUSION_SINGLE_VIEW_SIZE_IMPL_JUL_07_2011_1348PM + +namespace boost { namespace fusion +{ + struct single_view_tag; + + namespace extension + { + template + struct size_impl; + + template <> + struct size_impl + { + template + struct apply + { + typedef mpl::int_<1> type; + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/value_at_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/value_at_impl.hpp new file mode 100644 index 0000000000..b5721b84bd --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/value_at_impl.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ + +#if !defined(BOOST_FUSION_SINGLE_VIEW_VALUE_AT_IMPL_JUL_07_2011_1348PM) +#define BOOST_FUSION_SINGLE_VIEW_VALUE_AT_IMPL_JUL_07_2011_1348PM + +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_tag; + + namespace extension + { + template + struct value_at_impl; + + template<> + struct value_at_impl + { + template + struct apply + { + BOOST_MPL_ASSERT((mpl::equal_to >)); + typedef typename Sequence::value_type type; + }; + }; + } + +}} + +#endif diff --git a/3rdparty/boost/boost/fusion/view/single_view/detail/value_of_impl.hpp b/3rdparty/boost/boost/fusion/view/single_view/detail/value_of_impl.hpp new file mode 100644 index 0000000000..dfb345c8cd --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/detail/value_of_impl.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_VALUE_OF_IMPL_05052005_0324) +#define BOOST_FUSION_SINGLE_VIEW_VALUE_OF_IMPL_05052005_0324 + +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + + namespace extension + { + template + struct value_of_impl; + + template <> + struct value_of_impl + { + template + struct apply + { + BOOST_MPL_ASSERT((mpl::equal_to >)); + typedef typename Iterator::value_type type; + }; + }; + } +}} + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/single_view.hpp b/3rdparty/boost/boost/fusion/view/single_view/single_view.hpp new file mode 100644 index 0000000000..a4437902c1 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/single_view.hpp @@ -0,0 +1,72 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_05052005_0335) +#define BOOST_FUSION_SINGLE_VIEW_05052005_0335 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined (BOOST_MSVC) +# pragma warning(push) +# pragma warning (disable: 4512) // assignment operator could not be generated. +#endif + +namespace boost { namespace fusion +{ + struct single_view_tag; + struct random_access_traversal_tag; + struct fusion_sequence_tag; + + template + struct single_view : sequence_base > + { + typedef single_view_tag fusion_tag; + typedef fusion_sequence_tag tag; // this gets picked up by MPL + typedef random_access_traversal_tag category; + typedef mpl::true_ is_view; + typedef mpl::int_<1> size; + typedef T value_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + single_view() + : val() {} + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit single_view(typename detail::call_param::type in_val) + : val(in_val) {} + + value_type val; + }; + + template + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline single_view::type> + make_single_view(T const& v) + { + return single_view::type>(v); + } +}} + +#if defined (BOOST_MSVC) +# pragma warning(pop) +#endif + +#endif + + diff --git a/3rdparty/boost/boost/fusion/view/single_view/single_view_iterator.hpp b/3rdparty/boost/boost/fusion/view/single_view/single_view_iterator.hpp new file mode 100644 index 0000000000..0de6c84261 --- /dev/null +++ b/3rdparty/boost/boost/fusion/view/single_view/single_view_iterator.hpp @@ -0,0 +1,59 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2011 Eric Niebler + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SINGLE_VIEW_ITERATOR_05052005_0340) +#define BOOST_FUSION_SINGLE_VIEW_ITERATOR_05052005_0340 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace fusion +{ + struct single_view_iterator_tag; + struct random_access_traversal_tag; + + template + struct single_view_iterator + : iterator_base > + { + typedef single_view_iterator_tag fusion_tag; + typedef random_access_traversal_tag category; + typedef typename SingleView::value_type value_type; + typedef Pos position; + typedef SingleView single_view_type; + + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit single_view_iterator(single_view_type& in_view) + : view(in_view) {} + + SingleView& view; + + BOOST_DELETED_FUNCTION(single_view_iterator& operator=(single_view_iterator const&)) + }; +}} + +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template + struct iterator_traits< ::boost::fusion::single_view_iterator > + { }; +} +#endif + +#endif + + diff --git a/3rdparty/boost/boost/integer.hpp b/3rdparty/boost/boost/integer.hpp index 9fa0019484..6db0f76413 100644 --- a/3rdparty/boost/boost/integer.hpp +++ b/3rdparty/boost/boost/integer.hpp @@ -137,7 +137,7 @@ namespace boost { BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::uintmax_t) * CHAR_BIT), "No suitable unsigned integer type with the requested number of bits is available."); -#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T) +#if (defined(BOOST_BORLANDC) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T) // It's really not clear why this workaround should be needed... shrug I guess! JM BOOST_STATIC_CONSTANT(int, s = 6 + @@ -219,7 +219,7 @@ namespace boost #endif struct uint_value_t { -#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) +#if (defined(BOOST_BORLANDC) || defined(__CODEGEAR__)) // It's really not clear why this workaround should be needed... shrug I guess! JM #if defined(BOOST_NO_INTEGRAL_INT64_T) BOOST_STATIC_CONSTANT(unsigned, which = diff --git a/3rdparty/boost/boost/integer/common_factor_ct.hpp b/3rdparty/boost/boost/integer/common_factor_ct.hpp index 0671d161c3..dedf660379 100644 --- a/3rdparty/boost/boost/integer/common_factor_ct.hpp +++ b/3rdparty/boost/boost/integer/common_factor_ct.hpp @@ -30,7 +30,7 @@ namespace detail BOOST_STATIC_CONSTANT( static_gcd_type, new_value1 = Value2 ); BOOST_STATIC_CONSTANT( static_gcd_type, new_value2 = Value1 % Value2 ); - #ifndef __BORLANDC__ + #ifndef BOOST_BORLANDC #define BOOST_DETAIL_GCD_HELPER_VAL(Value) static_cast(Value) #else typedef static_gcd_helper_t self_type; diff --git a/3rdparty/boost/boost/integer/static_log2.hpp b/3rdparty/boost/boost/integer/static_log2.hpp index 56c7a00125..db3aba2d07 100644 --- a/3rdparty/boost/boost/integer/static_log2.hpp +++ b/3rdparty/boost/boost/integer/static_log2.hpp @@ -16,7 +16,8 @@ #ifndef BOOST_INTEGER_STATIC_LOG2_HPP #define BOOST_INTEGER_STATIC_LOG2_HPP -#include "boost/integer_fwd.hpp" // for boost::intmax_t +#include +#include namespace boost { @@ -122,6 +123,4 @@ namespace boost { } - - #endif // include guard diff --git a/3rdparty/boost/boost/integer_traits.hpp b/3rdparty/boost/boost/integer_traits.hpp index 94eb00d31e..aaaeed6bae 100644 --- a/3rdparty/boost/boost/integer_traits.hpp +++ b/3rdparty/boost/boost/integer_traits.hpp @@ -103,7 +103,7 @@ class integer_traits // library: they are wrong! #if defined(WCHAR_MIN) && defined(WCHAR_MAX) && !defined(__APPLE__) public detail::integer_traits_base -#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__)) +#elif defined(BOOST_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 #elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\ diff --git a/3rdparty/boost/boost/iterator/advance.hpp b/3rdparty/boost/boost/iterator/advance.hpp index 6f81cdb6b1..92af8fbfe6 100644 --- a/3rdparty/boost/boost/iterator/advance.hpp +++ b/3rdparty/boost/boost/iterator/advance.hpp @@ -77,7 +77,7 @@ namespace iterators { } // namespace iterators -using iterators::advance; +using namespace iterators::advance_adl_barrier; } // namespace boost diff --git a/3rdparty/boost/boost/iterator/detail/config_def.hpp b/3rdparty/boost/boost/iterator/detail/config_def.hpp index 117e75a76d..554ae0abd8 100644 --- a/3rdparty/boost/boost/iterator/detail/config_def.hpp +++ b/3rdparty/boost/boost/iterator/detail/config_def.hpp @@ -27,7 +27,7 @@ // 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)) + || BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x531)) // Recall that in general, compilers without partial specialization // can't strip constness. Consider counting_iterator, which normally @@ -46,7 +46,7 @@ #endif -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x5A0)) \ +#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x5A0)) \ || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \ || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) \ || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) @@ -88,7 +88,7 @@ #endif #if BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) + || BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x551)) # define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile: # if 0 // test code @@ -114,7 +114,7 @@ # define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY #endif -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +# if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564)) // GCC-2.95 (obsolete) eagerly instantiates templated constructors and conversion // operators in convertibility checks, causing premature errors. diff --git a/3rdparty/boost/boost/iterator/detail/facade_iterator_category.hpp b/3rdparty/boost/boost/iterator/detail/facade_iterator_category.hpp index 67fdf446b0..6db45e4539 100644 --- a/3rdparty/boost/boost/iterator/detail/facade_iterator_category.hpp +++ b/3rdparty/boost/boost/iterator/detail/facade_iterator_category.hpp @@ -4,6 +4,8 @@ #ifndef FACADE_ITERATOR_CATEGORY_DWA20031118_HPP # define FACADE_ITERATOR_CATEGORY_DWA20031118_HPP +# include + # include # include // used in iterator_tag inheritance logic @@ -33,8 +35,7 @@ namespace boost { namespace iterators { -// forward declaration -struct use_default; +using boost::use_default; namespace detail { diff --git a/3rdparty/boost/boost/iterator/distance.hpp b/3rdparty/boost/boost/iterator/distance.hpp index 8cf3f15c44..bef650b289 100644 --- a/3rdparty/boost/boost/iterator/distance.hpp +++ b/3rdparty/boost/boost/iterator/distance.hpp @@ -58,7 +58,7 @@ namespace iterators { } // namespace iterators -using iterators::distance; +using namespace iterators::distance_adl_barrier; } // namespace boost diff --git a/3rdparty/boost/boost/iterator/iterator_adaptor.hpp b/3rdparty/boost/boost/iterator/iterator_adaptor.hpp index f803fc65ed..db1c4daa3c 100644 --- a/3rdparty/boost/boost/iterator/iterator_adaptor.hpp +++ b/3rdparty/boost/boost/iterator/iterator_adaptor.hpp @@ -9,6 +9,8 @@ #include +#include + #include #include #include @@ -35,12 +37,10 @@ namespace iterators { // 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; + using boost::use_default; } // namespace iterators -using iterators::use_default; - // the incompleteness of use_default causes massive problems for // is_convertible (naturally). This workaround is fortunately not // needed for vc6/vc7. diff --git a/3rdparty/boost/boost/iterator/iterator_facade.hpp b/3rdparty/boost/boost/iterator/iterator_facade.hpp index 225c53a231..b43e618f0a 100644 --- a/3rdparty/boost/boost/iterator/iterator_facade.hpp +++ b/3rdparty/boost/boost/iterator/iterator_facade.hpp @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include diff --git a/3rdparty/boost/boost/lexical_cast.hpp b/3rdparty/boost/boost/lexical_cast.hpp index 3dc21f88a4..174883c0fc 100644 --- a/3rdparty/boost/boost/lexical_cast.hpp +++ b/3rdparty/boost/boost/lexical_cast.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at diff --git a/3rdparty/boost/boost/lexical_cast/bad_lexical_cast.hpp b/3rdparty/boost/boost/lexical_cast/bad_lexical_cast.hpp index 093121565e..8faa809317 100644 --- a/3rdparty/boost/boost/lexical_cast/bad_lexical_cast.hpp +++ b/3rdparty/boost/boost/lexical_cast/bad_lexical_cast.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -23,8 +23,8 @@ # pragma once #endif -#include #include +#include #include namespace boost @@ -38,7 +38,7 @@ namespace boost public std::bad_cast #endif -#if defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, < 0x560 ) +#if defined(BOOST_BORLANDC) && BOOST_WORKAROUND( BOOST_BORLANDC, < 0x560 ) // under bcc32 5.5.1 bad_cast doesn't derive from exception , public std::exception #endif @@ -51,32 +51,39 @@ namespace boost #endif {} - virtual const char *what() const BOOST_NOEXCEPT_OR_NOTHROW { + const char *what() const BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE { return "bad lexical cast: " "source type value could not be interpreted as target"; } - virtual ~bad_lexical_cast() BOOST_NOEXCEPT_OR_NOTHROW + ~bad_lexical_cast() BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE {} #ifndef BOOST_NO_TYPEID + private: +#ifdef BOOST_NO_STD_TYPEINFO + typedef ::type_info type_info_t; +#else + typedef ::std::type_info type_info_t; +#endif + public: bad_lexical_cast( - const std::type_info &source_type_arg, - const std::type_info &target_type_arg) BOOST_NOEXCEPT + const type_info_t &source_type_arg, + const type_info_t &target_type_arg) BOOST_NOEXCEPT : source(&source_type_arg), target(&target_type_arg) {} - const std::type_info &source_type() const BOOST_NOEXCEPT { + const type_info_t &source_type() const BOOST_NOEXCEPT { return *source; } - const std::type_info &target_type() const BOOST_NOEXCEPT { + const type_info_t &target_type() const BOOST_NOEXCEPT { return *target; } private: - const std::type_info *source; - const std::type_info *target; + const type_info_t *source; + const type_info_t *target; #endif }; @@ -94,8 +101,6 @@ namespace boost #endif }} // namespace conversion::detail - } // namespace boost #endif // BOOST_LEXICAL_CAST_BAD_LEXICAL_CAST_HPP - diff --git a/3rdparty/boost/boost/lexical_cast/detail/converter_lexical.hpp b/3rdparty/boost/boost/lexical_cast/detail/converter_lexical.hpp index fd866d84e5..92e35c88b9 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/converter_lexical.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/converter_lexical.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -30,9 +30,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -59,7 +59,7 @@ namespace boost { { // Converts signed/unsigned char to char template < class Char > - struct normalize_single_byte_char + struct normalize_single_byte_char { typedef Char type; }; @@ -79,7 +79,7 @@ namespace boost { namespace detail // deduce_character_type_later { - // Helper type, meaning that stram character for T must be deduced + // Helper type, meaning that stram character for T must be deduced // at Stage 2 (See deduce_source_char and deduce_target_char) template < class T > struct deduce_character_type_later {}; } @@ -90,35 +90,35 @@ namespace boost { // Returns one of char, wchar_t, char16_t, char32_t or deduce_character_type_later types // Executed on Stage 1 (See deduce_source_char and deduce_target_char) template < typename Type > - struct stream_char_common: public boost::mpl::if_c< + struct stream_char_common: public boost::conditional< boost::detail::is_character< Type >::value, Type, boost::detail::deduce_character_type_later< Type > > {}; template < typename Char > - struct stream_char_common< Char* >: public boost::mpl::if_c< + struct stream_char_common< Char* >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< Char* > > {}; template < typename Char > - struct stream_char_common< const Char* >: public boost::mpl::if_c< + struct stream_char_common< const Char* >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< const Char* > > {}; template < typename Char > - struct stream_char_common< boost::iterator_range< Char* > >: public boost::mpl::if_c< + struct stream_char_common< boost::iterator_range< Char* > >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< boost::iterator_range< Char* > > > {}; - + template < typename Char > - struct stream_char_common< boost::iterator_range< const Char* > >: public boost::mpl::if_c< + struct stream_char_common< boost::iterator_range< const Char* > >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< boost::iterator_range< const Char* > > @@ -137,14 +137,14 @@ namespace boost { }; template < typename Char, std::size_t N > - struct stream_char_common< boost::array< Char, N > >: public boost::mpl::if_c< + struct stream_char_common< boost::array< Char, N > >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< boost::array< Char, N > > > {}; template < typename Char, std::size_t N > - struct stream_char_common< boost::array< const Char, N > >: public boost::mpl::if_c< + struct stream_char_common< boost::array< const Char, N > >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< boost::array< const Char, N > > @@ -152,14 +152,14 @@ namespace boost { #ifndef BOOST_NO_CXX11_HDR_ARRAY template < typename Char, std::size_t N > - struct stream_char_common< std::array >: public boost::mpl::if_c< + struct stream_char_common< std::array >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< std::array< Char, N > > > {}; template < typename Char, std::size_t N > - struct stream_char_common< std::array< const Char, N > >: public boost::mpl::if_c< + struct stream_char_common< std::array< const Char, N > >: public boost::conditional< boost::detail::is_character< Char >::value, Char, boost::detail::deduce_character_type_later< std::array< const Char, N > > @@ -167,8 +167,8 @@ namespace boost { #endif #ifdef BOOST_HAS_INT128 - template <> struct stream_char_common< boost::int128_type >: public boost::mpl::identity< char > {}; - template <> struct stream_char_common< boost::uint128_type >: public boost::mpl::identity< char > {}; + template <> struct stream_char_common< boost::int128_type >: public boost::type_identity< char > {}; + template <> struct stream_char_common< boost::uint128_type >: public boost::type_identity< char > {}; #endif #if !defined(BOOST_LCAST_NO_WCHAR_T) && defined(BOOST_NO_INTRINSIC_WCHAR_T) @@ -187,27 +187,27 @@ namespace boost { // Otherwise supplied type T is a character type, that must be normalized // using normalize_single_byte_char. // Executed at Stage 2 (See deduce_source_char and deduce_target_char) - template < class Char > + template < class Char > struct deduce_source_char_impl - { - typedef BOOST_DEDUCED_TYPENAME boost::detail::normalize_single_byte_char< Char >::type type; + { + typedef BOOST_DEDUCED_TYPENAME boost::detail::normalize_single_byte_char< Char >::type type; }; - - template < class T > - struct deduce_source_char_impl< deduce_character_type_later< T > > + + template < class T > + struct deduce_source_char_impl< deduce_character_type_later< T > > { typedef boost::has_left_shift< std::basic_ostream< char >, T > result_t; #if defined(BOOST_LCAST_NO_WCHAR_T) - BOOST_STATIC_ASSERT_MSG((result_t::value), + BOOST_STATIC_ASSERT_MSG((result_t::value), "Source type is not std::ostream`able and std::wostream`s are not supported by your STL implementation"); typedef char type; #else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< result_t::value, char, wchar_t >::type type; - BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_left_shift< std::basic_ostream< type >, T >::value), + BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_left_shift< std::basic_ostream< type >, T >::value), "Source type is neither std::ostream`able nor std::wostream`able"); #endif }; @@ -220,47 +220,47 @@ namespace boost { // Otherwise supplied type T is a character type, that must be normalized // using normalize_single_byte_char. // Executed at Stage 2 (See deduce_source_char and deduce_target_char) - template < class Char > - struct deduce_target_char_impl - { - typedef BOOST_DEDUCED_TYPENAME normalize_single_byte_char< Char >::type type; + template < class Char > + struct deduce_target_char_impl + { + typedef BOOST_DEDUCED_TYPENAME normalize_single_byte_char< Char >::type type; }; - - template < class T > - struct deduce_target_char_impl< deduce_character_type_later > - { + + template < class T > + struct deduce_target_char_impl< deduce_character_type_later > + { typedef boost::has_right_shift, T > result_t; #if defined(BOOST_LCAST_NO_WCHAR_T) - BOOST_STATIC_ASSERT_MSG((result_t::value), + BOOST_STATIC_ASSERT_MSG((result_t::value), "Target type is not std::istream`able and std::wistream`s are not supported by your STL implementation"); typedef char type; #else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< result_t::value, char, wchar_t >::type type; - - BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_right_shift, T >::value), + + BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_right_shift, T >::value), "Target type is neither std::istream`able nor std::wistream`able"); #endif }; - } + } namespace detail // deduce_target_char and deduce_source_char { // We deduce stream character types in two stages. // - // Stage 1 is common for Target and Source. At Stage 1 we get + // Stage 1 is common for Target and Source. At Stage 1 we get // non normalized character type (may contain unsigned/signed char) // or deduce_character_type_later where T is the original type. // Stage 1 is executed by stream_char_common // - // At Stage 2 we normalize character types or try to deduce character - // type using metafunctions. - // Stage 2 is executed by deduce_target_char_impl and + // At Stage 2 we normalize character types or try to deduce character + // type using metafunctions. + // Stage 2 is executed by deduce_target_char_impl and // deduce_source_char_impl // - // deduce_target_char and deduce_source_char functions combine + // deduce_target_char and deduce_source_char functions combine // both stages template < class T > @@ -322,7 +322,7 @@ namespace boost { typedef const T * type; }; } - + namespace detail // lcast_src_length { // Return max. length of string representation of Source; @@ -368,7 +368,7 @@ namespace boost { // -1.23456789e-123456 // ^ sign // ^ leading digit - // ^ decimal point + // ^ decimal point // ^^^^^^^^ lcast_precision::value // ^ "e" // ^ exponent sign @@ -401,11 +401,11 @@ namespace boost { struct lexical_cast_stream_traits { typedef BOOST_DEDUCED_TYPENAME boost::detail::array_to_pointer_decay::type src; typedef BOOST_DEDUCED_TYPENAME boost::remove_cv::type no_cv_src; - + typedef boost::detail::deduce_source_char deduce_src_char_metafunc; typedef BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::type src_char_t; typedef BOOST_DEDUCED_TYPENAME boost::detail::deduce_target_char::type target_char_t; - + typedef BOOST_DEDUCED_TYPENAME boost::detail::widest_char< target_char_t, src_char_t >::type char_type; @@ -421,38 +421,38 @@ namespace boost { "Your compiler does not have full support for char32_t" ); #endif - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< boost::detail::extract_char_traits::value, BOOST_DEDUCED_TYPENAME boost::detail::extract_char_traits, BOOST_DEDUCED_TYPENAME boost::detail::extract_char_traits >::type::trait_t traits; - - typedef boost::mpl::bool_ - < - boost::is_same::value && // source is not a wide character based type + + typedef boost::integral_constant< + bool, + boost::is_same::value && // source is not a wide character based type (sizeof(char) != sizeof(target_char_t)) && // target type is based on wide character (!(boost::detail::is_character::value)) - > is_string_widening_required_t; + > is_string_widening_required_t; - typedef boost::mpl::bool_ - < - !(boost::is_integral::value || + typedef boost::integral_constant< + bool, + !(boost::is_integral::value || boost::detail::is_character< BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::stage1_type // if we did not get character type at stage1 >::value // then we have no optimization for that type - ) - > is_source_input_not_optimized_t; - + ) + > is_source_input_not_optimized_t; + // If we have an optimized conversion for // Source, we do not need to construct stringbuf. - BOOST_STATIC_CONSTANT(bool, requires_stringbuf = - (is_string_widening_required_t::value || is_source_input_not_optimized_t::value) + BOOST_STATIC_CONSTANT(bool, requires_stringbuf = + (is_string_widening_required_t::value || is_source_input_not_optimized_t::value) ); - + typedef boost::detail::lcast_src_length len_t; }; } - + namespace detail { template diff --git a/3rdparty/boost/boost/lexical_cast/detail/converter_lexical_streams.hpp b/3rdparty/boost/boost/lexical_cast/detail/converter_lexical_streams.hpp index 3758a9cc21..99a71b4b3f 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/converter_lexical_streams.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/converter_lexical_streams.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2016. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -33,12 +33,12 @@ #include #include #include -#include +#include #include #include +#include #include - #ifndef BOOST_NO_STD_LOCALE # include #else @@ -137,13 +137,13 @@ namespace boost { , std::size_t CharacterBufferSize > class lexical_istream_limited_src: boost::noncopyable { - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< RequiresStringbuffer, BOOST_DEDUCED_TYPENAME out_stream_helper_trait::out_stream_t, do_not_construct_out_stream_t >::type deduced_out_stream_t; - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< RequiresStringbuffer, BOOST_DEDUCED_TYPENAME out_stream_helper_trait::stringbuffer_t, do_not_construct_out_buffer_t diff --git a/3rdparty/boost/boost/lexical_cast/detail/converter_numeric.hpp b/3rdparty/boost/boost/lexical_cast/detail/converter_numeric.hpp index f50e2ca0fb..111613d2c7 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/converter_numeric.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/converter_numeric.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2016. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -24,9 +24,8 @@ #endif #include -#include -#include -#include +#include +#include #include #include #include @@ -43,8 +42,8 @@ struct detect_precision_loss { typedef Source source_type; typedef boost::numeric::Trunc Rounder; - typedef BOOST_DEDUCED_TYPENAME mpl::if_< - boost::is_arithmetic, Source, Source const& + typedef BOOST_DEDUCED_TYPENAME conditional< + boost::is_arithmetic::value, Source, Source const& >::type argument_type ; static inline source_type nearbyint(argument_type s, bool& is_ok) BOOST_NOEXCEPT { @@ -66,8 +65,8 @@ template struct fake_precision_loss: public Base { typedef Source source_type ; - typedef BOOST_DEDUCED_TYPENAME mpl::if_< - boost::is_arithmetic, Source, Source const& + typedef BOOST_DEDUCED_TYPENAME conditional< + boost::is_arithmetic::value, Source, Source const& >::type argument_type ; static inline source_type nearbyint(argument_type s, bool& /*is_ok*/) BOOST_NOEXCEPT { @@ -92,7 +91,7 @@ inline bool noexcept_numeric_convert(const Source& arg, Target& result) BOOST_NO detect_precision_loss > converter_orig_t; - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< boost::is_base_of< detect_precision_loss, converter_orig_t >::value, converter_orig_t, fake_precision_loss @@ -115,11 +114,12 @@ template struct lexical_cast_dynamic_num_ignoring_minus { static inline bool try_convert(const Source &arg, Target& result) BOOST_NOEXCEPT { - typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< boost::is_float::value, - boost::mpl::identity, + boost::type_identity, boost::make_unsigned - >::type usource_t; + >::type usource_lazy_t; + typedef BOOST_DEDUCED_TYPENAME usource_lazy_t::type usource_t; if (arg < 0) { const bool res = noexcept_numeric_convert(0u - arg, result); @@ -153,7 +153,7 @@ template struct dynamic_num_converter_impl { static inline bool try_convert(const Source &arg, Target& result) BOOST_NOEXCEPT { - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< boost::is_unsigned::value && (boost::is_signed::value || boost::is_float::value) && !(boost::is_same::value) && diff --git a/3rdparty/boost/boost/lexical_cast/detail/inf_nan.hpp b/3rdparty/boost/boost/lexical_cast/detail/inf_nan.hpp index c10457ecd2..296688c002 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/inf_nan.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/inf_nan.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at diff --git a/3rdparty/boost/boost/lexical_cast/detail/is_character.hpp b/3rdparty/boost/boost/lexical_cast/detail/is_character.hpp index 732c39f8e8..3f02232df5 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/is_character.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/is_character.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -23,7 +23,7 @@ # pragma once #endif -#include +#include #include namespace boost { @@ -34,8 +34,9 @@ namespace boost { template < typename T > struct is_character { - typedef BOOST_DEDUCED_TYPENAME boost::mpl::bool_< - boost::is_same< T, char >::value || + typedef BOOST_DEDUCED_TYPENAME boost::integral_constant< + bool, + boost::is_same< T, char >::value || #if !defined(BOOST_NO_STRINGSTREAM) && !defined(BOOST_NO_STD_WSTRING) boost::is_same< T, wchar_t >::value || #endif @@ -45,8 +46,8 @@ namespace boost { #ifndef BOOST_NO_CXX11_CHAR32_T boost::is_same< T, char32_t >::value || #endif - boost::is_same< T, unsigned char >::value || - boost::is_same< T, signed char >::value + boost::is_same< T, unsigned char >::value || + boost::is_same< T, signed char >::value > type; BOOST_STATIC_CONSTANT(bool, value = (type::value) ); diff --git a/3rdparty/boost/boost/lexical_cast/detail/lcast_char_constants.hpp b/3rdparty/boost/boost/lexical_cast/detail/lcast_char_constants.hpp index fd651ee3e9..9805da00b3 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/lcast_char_constants.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/lcast_char_constants.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at diff --git a/3rdparty/boost/boost/lexical_cast/detail/lcast_unsigned_converters.hpp b/3rdparty/boost/boost/lexical_cast/detail/lcast_unsigned_converters.hpp index 268961ee72..bbfdc3f090 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/lcast_unsigned_converters.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include @@ -71,9 +71,9 @@ namespace boost template class lcast_put_unsigned: boost::noncopyable { typedef BOOST_DEDUCED_TYPENAME Traits::int_type int_type; - BOOST_DEDUCED_TYPENAME boost::mpl::if_c< - (sizeof(int_type) > sizeof(T)) - , int_type + BOOST_DEDUCED_TYPENAME boost::conditional< + (sizeof(unsigned) > sizeof(T)) + , unsigned , T >::type m_value; CharT* m_finish; diff --git a/3rdparty/boost/boost/lexical_cast/detail/widest_char.hpp b/3rdparty/boost/boost/lexical_cast/detail/widest_char.hpp index 013aaf119d..ba172f3881 100644 --- a/3rdparty/boost/boost/lexical_cast/detail/widest_char.hpp +++ b/3rdparty/boost/boost/lexical_cast/detail/widest_char.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2014. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -23,11 +23,14 @@ # pragma once #endif + +#include + namespace boost { namespace detail { template struct widest_char { - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< (sizeof(TargetChar) > sizeof(SourceChar)) , TargetChar , SourceChar diff --git a/3rdparty/boost/boost/lexical_cast/try_lexical_convert.hpp b/3rdparty/boost/boost/lexical_cast/try_lexical_convert.hpp index b079fd42ae..1e2e44a7f1 100644 --- a/3rdparty/boost/boost/lexical_cast/try_lexical_convert.hpp +++ b/3rdparty/boost/boost/lexical_cast/try_lexical_convert.hpp @@ -1,6 +1,6 @@ // Copyright Kevlin Henney, 2000-2005. // Copyright Alexander Nasonov, 2006-2010. -// Copyright Antony Polukhin, 2011-2016. +// Copyright Antony Polukhin, 2011-2020. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -28,12 +28,14 @@ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wsign-conversion" #endif + #include -#include -#include -#include +#include +#include +#include #include #include @@ -72,8 +74,9 @@ namespace boost { template struct is_arithmetic_and_not_xchars { - typedef boost::mpl::bool_< - !(boost::detail::is_character::value) && + typedef boost::integral_constant< + bool, + !(boost::detail::is_character::value) && !(boost::detail::is_character::value) && boost::is_arithmetic::value && boost::is_arithmetic::value @@ -91,8 +94,9 @@ namespace boost { template struct is_xchar_to_xchar { - typedef boost::mpl::bool_< - sizeof(Source) == sizeof(Target) && + typedef boost::integral_constant< + bool, + sizeof(Source) == sizeof(Target) && sizeof(Source) == sizeof(char) && boost::detail::is_character::value && boost::detail::is_character::value @@ -162,7 +166,8 @@ namespace boost { { typedef BOOST_DEDUCED_TYPENAME boost::detail::array_to_pointer_decay::type src; - typedef boost::mpl::bool_< + typedef boost::integral_constant< + bool, boost::detail::is_xchar_to_xchar::value || boost::detail::is_char_array_to_stdstring::value || boost::detail::is_char_array_to_booststring::value || @@ -181,11 +186,11 @@ namespace boost { // We do evaluate second `if_` lazily to avoid unnecessary instantiations // of `shall_we_copy_with_dynamic_check_t` and improve compilation times. - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< + typedef BOOST_DEDUCED_TYPENAME boost::conditional< shall_we_copy_t::value, - boost::mpl::identity >, - boost::mpl::if_< - shall_we_copy_with_dynamic_check_t, + boost::type_identity >, + boost::conditional< + shall_we_copy_with_dynamic_check_t::value, boost::detail::dynamic_num_converter_impl, boost::detail::lexical_converter_impl > diff --git a/3rdparty/boost/boost/math/policies/policy.hpp b/3rdparty/boost/boost/math/policies/policy.hpp index c1e1a7be4a..ed07363c7e 100644 --- a/3rdparty/boost/boost/math/policies/policy.hpp +++ b/3rdparty/boost/boost/math/policies/policy.hpp @@ -116,9 +116,9 @@ namespace policies{ #define BOOST_MATH_MAX_ROOT_ITERATION_POLICY 200 #endif -#if !defined(__BORLANDC__) +#if !defined(BOOST_BORLANDC) #define BOOST_MATH_META_INT(type, name, Default)\ - template struct name : public boost::mpl::int_{};\ + template struct name : public boost::integral_constant{};\ namespace detail{\ template \ char test_is_valid_arg(const name*);\ @@ -130,10 +130,10 @@ namespace policies{ BOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast(0))) == 1);\ };\ }\ - template struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp::value>{}; + template struct is_##name : public boost::integral_constant::value>{}; #define BOOST_MATH_META_BOOL(name, Default)\ - template struct name : public boost::mpl::bool_{};\ + template struct name : public boost::integral_constant{};\ namespace detail{\ template \ char test_is_valid_arg(const name*);\ @@ -145,10 +145,10 @@ namespace policies{ BOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast(0))) == 1);\ };\ }\ - template struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp::value>{}; + template struct is_##name : public boost::integral_constant::value>{}; #else #define BOOST_MATH_META_INT(Type, name, Default)\ - template struct name : public boost::mpl::int_{};\ + template struct name : public boost::integral_constant{};\ namespace detail{\ template \ char test_is_valid_arg(const name*);\ @@ -164,13 +164,13 @@ namespace policies{ BOOST_STATIC_CONSTANT(bool, value = sizeof( ::boost::math::policies::detail::is_##name##_tester::test(inst)) == 1);\ };\ }\ - template struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp::value>\ + template struct is_##name : public boost::integral_constant::value>\ {\ template struct apply{ typedef is_##name type; };\ }; #define BOOST_MATH_META_BOOL(name, Default)\ - template struct name : public boost::mpl::bool_{};\ + template struct name : public boost::integral_constant{};\ namespace detail{\ template \ char test_is_valid_arg(const name*);\ @@ -186,7 +186,7 @@ namespace policies{ BOOST_STATIC_CONSTANT(bool, value = sizeof( ::boost::math::policies::detail::is_##name##_tester::test(inst)) == 1);\ };\ }\ - template struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp::value>\ + template struct is_##name : public boost::integral_constant::value>\ {\ template struct apply{ typedef is_##name type; };\ }; @@ -266,7 +266,7 @@ struct precision digits2<((Digits10::value + 1) * 1000L) / 301L> >::type digits2_type; public: -#ifdef __BORLANDC__ +#ifdef BOOST_BORLANDC typedef typename mpl::if_c< (Digits2::value > ::boost::math::policies::detail::precision::digits2_type::value), Digits2, digits2_type>::type type; @@ -318,13 +318,11 @@ struct is_default_policy_imp }; template struct is_valid_policy -: public mpl::bool_< - ::boost::math::policies::detail::is_valid_policy_imp::value> +: public boost::integral_constant::value> {}; template struct is_default_policy -: public mpl::bool_< - ::boost::math::policies::detail::is_default_policy_imp::value> +: public boost::integral_constant::value> { template struct apply @@ -593,19 +591,19 @@ private: typedef typename detail::append_N::value)>::type result_type; public: typedef policy< - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type, - typename mpl::at >::type > type; + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type, + typename mpl::at >::type > type; }; // // Full specialisation to speed up compilation of the common case: @@ -748,13 +746,13 @@ struct evaluation #ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS template -struct basic_digits : public mpl::int_<0>{ }; +struct basic_digits : public boost::integral_constant{ }; template <> -struct basic_digits : public mpl::int_{ }; +struct basic_digits : public boost::integral_constant{ }; template <> -struct basic_digits : public mpl::int_{ }; +struct basic_digits : public boost::integral_constant{ }; template <> -struct basic_digits : public mpl::int_{ }; +struct basic_digits : public boost::integral_constant{ }; template struct precision @@ -763,11 +761,11 @@ struct precision typedef typename Policy::precision_type precision_type; typedef basic_digits digits_t; typedef typename mpl::if_< - mpl::equal_to >, + mpl::equal_to >, // Possibly unknown precision: precision_type, typename mpl::if_< - mpl::or_, mpl::less_equal > >, + mpl::or_, mpl::less_equal > >, // Default case, full precision for RealType: digits2< ::std::numeric_limits::digits>, // User customised precision: @@ -798,7 +796,7 @@ template struct precision { BOOST_STATIC_ASSERT((::std::numeric_limits::radix == 2) || ((::std::numeric_limits::is_specialized == 0) || (::std::numeric_limits::digits == 0))); -#ifndef __BORLANDC__ +#ifndef BOOST_BORLANDC typedef typename Policy::precision_type precision_type; typedef typename mpl::if_c< ((::std::numeric_limits::is_specialized == 0) || (::std::numeric_limits::digits == 0)), @@ -815,14 +813,14 @@ struct precision >::type type; #else typedef typename Policy::precision_type precision_type; - typedef mpl::int_< ::std::numeric_limits::digits> digits_t; - typedef mpl::bool_< ::std::numeric_limits::is_specialized> spec_t; + typedef boost::integral_constant::digits> digits_t; + typedef boost::integral_constant::is_specialized> spec_t; typedef typename mpl::if_< - mpl::or_, mpl::equal_to > >, + mpl::or_, mpl::equal_to > >, // Possibly unknown precision: precision_type, typename mpl::if_< - mpl::or_, mpl::less_equal > >, + mpl::or_, mpl::less_equal > >, // Default case, full precision for RealType: digits2< ::std::numeric_limits::digits>, // User customised precision: @@ -839,7 +837,7 @@ struct precision template struct precision { - typedef mpl::int_<113> type; + typedef boost::integral_constant type; }; #endif @@ -847,7 +845,7 @@ struct precision namespace detail{ template -inline BOOST_MATH_CONSTEXPR int digits_imp(mpl::true_ const&) BOOST_NOEXCEPT +inline BOOST_MATH_CONSTEXPR int digits_imp(boost::true_type const&) BOOST_NOEXCEPT { #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS BOOST_STATIC_ASSERT( ::std::numeric_limits::is_specialized); @@ -859,7 +857,7 @@ inline BOOST_MATH_CONSTEXPR int digits_imp(mpl::true_ const&) BOOST_NOEXCEPT } template -inline BOOST_MATH_CONSTEXPR int digits_imp(mpl::false_ const&) BOOST_NOEXCEPT +inline BOOST_MATH_CONSTEXPR int digits_imp(boost::false_type const&) BOOST_NOEXCEPT { return tools::digits(); } @@ -869,7 +867,7 @@ inline BOOST_MATH_CONSTEXPR int digits_imp(mpl::false_ const&) BOOST_NOEXCEPT template inline BOOST_MATH_CONSTEXPR int digits(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T)) BOOST_NOEXCEPT { - typedef mpl::bool_< std::numeric_limits::is_specialized > tag_type; + typedef boost::integral_constant::is_specialized > tag_type; return detail::digits_imp(tag_type()); } template @@ -904,7 +902,7 @@ struct series_factor_calc }; template -struct series_factor_calc +struct series_factor_calc { static BOOST_MATH_CONSTEXPR T get() BOOST_MATH_NOEXCEPT(T) { @@ -912,7 +910,7 @@ struct series_factor_calc } }; template -struct series_factor_calc +struct series_factor_calc { static BOOST_MATH_CONSTEXPR T get() BOOST_MATH_NOEXCEPT(T) { @@ -920,7 +918,7 @@ struct series_factor_calc } }; template -struct series_factor_calc +struct series_factor_calc { static BOOST_MATH_CONSTEXPR T get() BOOST_MATH_NOEXCEPT(T) { @@ -929,7 +927,7 @@ struct series_factor_calc }; template -inline BOOST_MATH_CONSTEXPR T get_epsilon_imp(mpl::true_ const&) BOOST_MATH_NOEXCEPT(T) +inline BOOST_MATH_CONSTEXPR T get_epsilon_imp(boost::true_type const&) BOOST_MATH_NOEXCEPT(T) { #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS BOOST_STATIC_ASSERT( ::std::numeric_limits::is_specialized); @@ -939,13 +937,13 @@ inline BOOST_MATH_CONSTEXPR T get_epsilon_imp(mpl::true_ const&) BOOST_MATH_NOEX BOOST_ASSERT(::std::numeric_limits::radix == 2); #endif typedef typename boost::math::policies::precision::type p_t; - typedef mpl::bool_::digits> is_small_int; - typedef mpl::bool_= std::numeric_limits::digits> is_default_value; + typedef boost::integral_constant::digits> is_small_int; + typedef boost::integral_constant= std::numeric_limits::digits> is_default_value; return series_factor_calc::get(); } template -inline BOOST_MATH_CONSTEXPR T get_epsilon_imp(mpl::false_ const&) BOOST_MATH_NOEXCEPT(T) +inline BOOST_MATH_CONSTEXPR T get_epsilon_imp(boost::false_type const&) BOOST_MATH_NOEXCEPT(T) { return tools::epsilon(); } @@ -955,7 +953,7 @@ inline BOOST_MATH_CONSTEXPR T get_epsilon_imp(mpl::false_ const&) BOOST_MATH_NOE template inline BOOST_MATH_CONSTEXPR T get_epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T)) BOOST_MATH_NOEXCEPT(T) { - typedef mpl::bool_< (std::numeric_limits::is_specialized && (std::numeric_limits::radix == 2)) > tag_type; + typedef boost::integral_constant::is_specialized && (std::numeric_limits::radix == 2)) > tag_type; return detail::get_epsilon_imp(tag_type()); } @@ -984,7 +982,7 @@ struct is_policy_imp } template -struct is_policy : public mpl::bool_< ::boost::math::policies::detail::is_policy_imp

::value> {}; +struct is_policy : public boost::integral_constant::value> {}; // // Helper traits class for distribution error handling: @@ -995,8 +993,8 @@ struct constructor_error_check typedef typename Policy::domain_error_type domain_error_type; typedef typename mpl::if_c< (domain_error_type::value == throw_on_error) || (domain_error_type::value == user_error) || (domain_error_type::value == errno_on_error), - mpl::true_, - mpl::false_>::type type; + boost::true_type, + boost::false_type>::type type; }; template @@ -1005,8 +1003,8 @@ struct method_error_check typedef typename Policy::domain_error_type domain_error_type; typedef typename mpl::if_c< (domain_error_type::value == throw_on_error) && (domain_error_type::value != user_error), - mpl::false_, - mpl::true_>::type type; + boost::false_type, + boost::true_type>::type type; }; // // Does the Policy ever throw on error? diff --git a/3rdparty/boost/boost/math/special_functions/detail/fp_traits.hpp b/3rdparty/boost/boost/math/special_functions/detail/fp_traits.hpp index c957022223..2d555d7106 100644 --- a/3rdparty/boost/boost/math/special_functions/detail/fp_traits.hpp +++ b/3rdparty/boost/boost/math/special_functions/detail/fp_traits.hpp @@ -21,10 +21,11 @@ With these techniques, the code could be simplified. #endif #include +#include #include #include -#include +#include #include #include @@ -51,9 +52,9 @@ With these techniques, the code could be simplified. && (_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC != 0)) # ifdef _STLP_VENDOR_CSTD # if _STLPORT_VERSION >= 0x520 -# define BOOST_FPCLASSIFY_PREFIX ::__std_alias:: +# define BOOST_FPCLASSIFY_PREFIX ::__std_alias:: # else -# define BOOST_FPCLASSIFY_PREFIX ::_STLP_VENDOR_CSTD:: +# define BOOST_FPCLASSIFY_PREFIX ::_STLP_VENDOR_CSTD:: # endif # else # define BOOST_FPCLASSIFY_PREFIX ::std:: @@ -84,7 +85,7 @@ namespace detail { //------------------------------------------------------------------------------ -/* +/* The following classes are used to tag the different methods that are used for floating point classification */ @@ -191,7 +192,7 @@ template<> struct fp_traits_non_native // ieee_tag version, double (64 bits) ---------------------------------------------- #if defined(BOOST_NO_INT64_T) || defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) \ - || defined(__BORLANDC__) || defined(__CODEGEAR__) + || defined(BOOST_BORLANDC) || defined(__CODEGEAR__) template<> struct fp_traits_non_native { @@ -216,9 +217,9 @@ template<> struct fp_traits_non_native private: -#if defined(BOOST_BIG_ENDIAN) +#if BOOST_ENDIAN_BIG_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 0); -#elif defined(BOOST_LITTLE_ENDIAN) +#elif BOOST_ENDIAN_LITTLE_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 4); #else BOOST_STATIC_ASSERT(false); @@ -251,7 +252,7 @@ template<> struct fp_traits_non_native // long double (64 bits) ------------------------------------------------------- #if defined(BOOST_NO_INT64_T) || defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)\ - || defined(__BORLANDC__) || defined(__CODEGEAR__) + || defined(BOOST_BORLANDC) || defined(__CODEGEAR__) template<> struct fp_traits_non_native { @@ -276,9 +277,9 @@ template<> struct fp_traits_non_native private: -#if defined(BOOST_BIG_ENDIAN) +#if BOOST_ENDIAN_BIG_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 0); -#elif defined(BOOST_LITTLE_ENDIAN) +#elif BOOST_ENDIAN_LITTLE_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 4); #else BOOST_STATIC_ASSERT(false); @@ -390,9 +391,9 @@ struct fp_traits_non_native private: -#if defined(BOOST_BIG_ENDIAN) +#if BOOST_ENDIAN_BIG_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 0); -#elif defined(BOOST_LITTLE_ENDIAN) +#elif BOOST_ENDIAN_LITTLE_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 12); #else BOOST_STATIC_ASSERT(false); @@ -471,9 +472,9 @@ struct fp_traits_non_native private: -#if defined(BOOST_BIG_ENDIAN) +#if BOOST_ENDIAN_BIG_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 0); -#elif defined(BOOST_LITTLE_ENDIAN) +#elif BOOST_ENDIAN_LITTLE_BYTE BOOST_STATIC_CONSTANT(int, offset_ = 12); #else BOOST_STATIC_ASSERT(false); @@ -557,7 +558,7 @@ struct select_native && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)\ && !defined(BOOST_INTEL)\ && !defined(sun)\ - && !defined(__VXWORKS__) + && !defined(__VXWORKS__) # define BOOST_MATH_USE_STD_FPCLASSIFY #endif diff --git a/3rdparty/boost/boost/math/special_functions/fpclassify.hpp b/3rdparty/boost/boost/math/special_functions/fpclassify.hpp index d83e111c48..3c1733e668 100644 --- a/3rdparty/boost/boost/math/special_functions/fpclassify.hpp +++ b/3rdparty/boost/boost/math/special_functions/fpclassify.hpp @@ -77,7 +77,7 @@ is used. */ -#if defined(_MSC_VER) || defined(__BORLANDC__) +#if defined(_MSC_VER) || defined(BOOST_BORLANDC) #include #endif #ifdef BOOST_MATH_USE_FLOAT128 @@ -168,7 +168,7 @@ inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(T t, const generic_tag&) #elif defined(isnan) if(boost::math_detail::is_nan_helper(t, ::boost::is_floating_point())) return FP_NAN; -#elif defined(_MSC_VER) || defined(__BORLANDC__) +#elif defined(_MSC_VER) || defined(BOOST_BORLANDC) if(::_isnan(boost::math::tools::real_cast(t))) return FP_NAN; #endif diff --git a/3rdparty/boost/boost/math/special_functions/math_fwd.hpp b/3rdparty/boost/boost/math/special_functions/math_fwd.hpp index 4f44f56113..dff47c2d6f 100644 --- a/3rdparty/boost/boost/math/special_functions/math_fwd.hpp +++ b/3rdparty/boost/boost/math/special_functions/math_fwd.hpp @@ -639,9 +639,9 @@ namespace boost namespace detail{ - typedef mpl::int_<0> bessel_no_int_tag; // No integer optimisation possible. - typedef mpl::int_<1> bessel_maybe_int_tag; // Maybe integer optimisation. - typedef mpl::int_<2> bessel_int_tag; // Definite integer optimistaion. + typedef boost::integral_constant bessel_no_int_tag; // No integer optimisation possible. + typedef boost::integral_constant bessel_maybe_int_tag; // Maybe integer optimisation. + typedef boost::integral_constant bessel_int_tag; // Definite integer optimisation. template struct bessel_traits @@ -656,8 +656,8 @@ namespace boost typedef typename mpl::if_< mpl::or_< - mpl::less_equal >, - mpl::greater > >, + mpl::less_equal >, + mpl::greater > >, bessel_no_int_tag, typename mpl::if_< is_integral, @@ -667,8 +667,8 @@ namespace boost >::type optimisation_tag; typedef typename mpl::if_< mpl::or_< - mpl::less_equal >, - mpl::greater > >, + mpl::less_equal >, + mpl::greater > >, bessel_no_int_tag, typename mpl::if_< is_integral, @@ -1013,16 +1013,89 @@ namespace boost template typename tools::promote_args::type jacobi_cs(T k, U theta); + // Jacobi Theta Functions: + template + typename tools::promote_args::type jacobi_theta1(T z, U q, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta1(T z, U q); + + template + typename tools::promote_args::type jacobi_theta2(T z, U q, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta2(T z, U q); + + template + typename tools::promote_args::type jacobi_theta3(T z, U q, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta3(T z, U q); + + template + typename tools::promote_args::type jacobi_theta4(T z, U q, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta4(T z, U q); + + template + typename tools::promote_args::type jacobi_theta1tau(T z, U tau, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta1tau(T z, U tau); + + template + typename tools::promote_args::type jacobi_theta2tau(T z, U tau, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta2tau(T z, U tau); + + template + typename tools::promote_args::type jacobi_theta3tau(T z, U tau, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta3tau(T z, U tau); + + template + typename tools::promote_args::type jacobi_theta4tau(T z, U tau, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta4tau(T z, U tau); + + template + typename tools::promote_args::type jacobi_theta3m1(T z, U q, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta3m1(T z, U q); + + template + typename tools::promote_args::type jacobi_theta4m1(T z, U q, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta4m1(T z, U q); + + template + typename tools::promote_args::type jacobi_theta3m1tau(T z, U tau, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta3m1tau(T z, U tau); + + template + typename tools::promote_args::type jacobi_theta4m1tau(T z, U tau, const Policy& pol); + + template + typename tools::promote_args::type jacobi_theta4m1tau(T z, U tau); + template typename tools::promote_args::type zeta(T s); // pow: template - typename tools::promote_args::type pow(T base, const Policy& policy); + BOOST_CXX14_CONSTEXPR typename tools::promote_args::type pow(T base, const Policy& policy); template - typename tools::promote_args::type pow(T base); + BOOST_CXX14_CONSTEXPR typename tools::promote_args::type pow(T base); // next: template @@ -1085,6 +1158,38 @@ namespace boost const unsigned number_of_bernoullis_b2n, OutputIterator out_it); + // Lambert W: + template + typename boost::math::tools::promote_args::type lambert_w0(T z, const Policy& pol); + template + typename boost::math::tools::promote_args::type lambert_w0(T z); + template + typename boost::math::tools::promote_args::type lambert_wm1(T z, const Policy& pol); + template + typename boost::math::tools::promote_args::type lambert_wm1(T z); + template + typename boost::math::tools::promote_args::type lambert_w0_prime(T z, const Policy& pol); + template + typename boost::math::tools::promote_args::type lambert_w0_prime(T z); + template + typename boost::math::tools::promote_args::type lambert_wm1_prime(T z, const Policy& pol); + template + typename boost::math::tools::promote_args::type lambert_wm1_prime(T z); + + // Hypergeometrics: + template typename tools::promote_args::type hypergeometric_1F0(T1 a, T2 z); + template typename tools::promote_args::type hypergeometric_1F0(T1 a, T2 z, const Policy&); + + template typename tools::promote_args::type hypergeometric_0F1(T1 b, T2 z); + template typename tools::promote_args::type hypergeometric_0F1(T1 b, T2 z, const Policy&); + + template typename tools::promote_args::type hypergeometric_2F0(T1 a1, T2 a2, T3 z); + template typename tools::promote_args::type hypergeometric_2F0(T1 a1, T2 a2, T3 z, const Policy&); + + template typename tools::promote_args::type hypergeometric_1F1(T1 a, T2 b, T3 z); + template typename tools::promote_args::type hypergeometric_1F1(T1 a, T2 b, T3 z, const Policy&); + + } // namespace math } // namespace boost @@ -1104,9 +1209,20 @@ namespace boost #define BOOST_MATH_DETAIL_LL_FUNC(Policy) #endif +#if !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_CXX11_HDR_ARRAY) +# define BOOST_MATH_DETAIL_11_FUNC(Policy)\ + template \ + inline typename boost::math::tools::promote_args::type hypergeometric_1F1(const T& a, const U& b, const V& z)\ + { return boost::math::hypergeometric_1F1(a, b, z, Policy()); }\ + +#else +# define BOOST_MATH_DETAIL_11_FUNC(Policy) +#endif + #define BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(Policy)\ \ BOOST_MATH_DETAIL_LL_FUNC(Policy)\ + BOOST_MATH_DETAIL_11_FUNC(Policy)\ \ template \ inline typename boost::math::tools::promote_args::type \ @@ -1467,10 +1583,10 @@ template \ { boost::math::cyl_neumann_zero(v, start_index, number_of_zeros, out_it, Policy()); }\ \ template \ - inline typename boost::math::tools::promote_args::type sin_pi(T x){ return boost::math::sin_pi(x); }\ + inline typename boost::math::tools::promote_args::type sin_pi(T x){ return boost::math::sin_pi(x, Policy()); }\ \ template \ - inline typename boost::math::tools::promote_args::type cos_pi(T x){ return boost::math::cos_pi(x); }\ + inline typename boost::math::tools::promote_args::type cos_pi(T x){ return boost::math::cos_pi(x, Policy()); }\ \ using boost::math::fpclassify;\ using boost::math::isfinite;\ @@ -1599,6 +1715,54 @@ template \ inline typename boost::math::tools::promote_args::type jacobi_cs(T k, U theta)\ { return boost::math::jacobi_cs(k, theta, Policy()); }\ \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta1(T z, U q)\ + { return boost::math::jacobi_theta1(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta2(T z, U q)\ + { return boost::math::jacobi_theta2(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta3(T z, U q)\ + { return boost::math::jacobi_theta3(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta4(T z, U q)\ + { return boost::math::jacobi_theta4(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta1tau(T z, U q)\ + { return boost::math::jacobi_theta1tau(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta2tau(T z, U q)\ + { return boost::math::jacobi_theta2tau(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta3tau(T z, U q)\ + { return boost::math::jacobi_theta3tau(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta4tau(T z, U q)\ + { return boost::math::jacobi_theta4tau(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta3m1(T z, U q)\ + { return boost::math::jacobi_theta3m1(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta4m1(T z, U q)\ + { return boost::math::jacobi_theta4m1(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta3m1tau(T z, U q)\ + { return boost::math::jacobi_theta3m1tau(z, q, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type jacobi_theta4m1tau(T z, U q)\ + { return boost::math::jacobi_theta4m1tau(z, q, Policy()); }\ + \ template \ inline typename boost::math::tools::promote_args::type airy_ai(T x)\ { return boost::math::airy_ai(x, Policy()); }\ @@ -1643,6 +1807,24 @@ template \ OutputIterator tangent_t2n(int start_index, unsigned number_of_bernoullis_b2n, OutputIterator out_it)\ { return boost::math::tangent_t2n(start_index, number_of_bernoullis_b2n, out_it, Policy()); }\ \ + template inline typename boost::math::tools::promote_args::type lambert_w0(T z) { return boost::math::lambert_w0(z, Policy()); }\ + template inline typename boost::math::tools::promote_args::type lambert_wm1(T z) { return boost::math::lambert_w0(z, Policy()); }\ + template inline typename boost::math::tools::promote_args::type lambert_w0_prime(T z) { return boost::math::lambert_w0(z, Policy()); }\ + template inline typename boost::math::tools::promote_args::type lambert_wm1_prime(T z) { return boost::math::lambert_w0(z, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type hypergeometric_1F0(const T& a, const U& z)\ + { return boost::math::hypergeometric_1F0(a, z, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type hypergeometric_0F1(const T& a, const U& z)\ + { return boost::math::hypergeometric_0F1(a, z, Policy()); }\ + \ + template \ + inline typename boost::math::tools::promote_args::type hypergeometric_2F0(const T& a1, const U& a2, const V& z)\ + { return boost::math::hypergeometric_2F0(a1, a2, z, Policy()); }\ + \ + diff --git a/3rdparty/boost/boost/math/tools/config.hpp b/3rdparty/boost/boost/math/tools/config.hpp index 17bfec16fe..60c7e75a01 100644 --- a/3rdparty/boost/boost/math/tools/config.hpp +++ b/3rdparty/boost/boost/math/tools/config.hpp @@ -11,7 +11,7 @@ #endif #include -#include +#include #include // for boost::uintmax_t #include #include @@ -28,12 +28,12 @@ #include -#if (defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) \ +#if (defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__EMSCRIPTEN__)\ || (defined(__hppa) && !defined(__OpenBSD__)) || (defined(__NO_LONG_DOUBLE_MATH) && (DBL_MANT_DIG != LDBL_MANT_DIG))) \ && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS) # define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS #endif -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) +#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x582)) // // Borland post 5.8.2 uses Dinkumware's std C lib which // doesn't have true long double precision. Earlier @@ -46,7 +46,7 @@ #endif #ifdef __IBMCPP__ // -// For reasons I don't unserstand, the tests with IMB's compiler all +// For reasons I don't understand, the tests with IMB's compiler all // pass at long double precision, but fail with real_concept, those tests // are disabled for now. (JM 2012). # define BOOST_MATH_NO_REAL_CONCEPT_TESTS @@ -184,10 +184,20 @@ // #ifdef BOOST_MSVC # define BOOST_MATH_POLY_METHOD 2 +#if BOOST_MSVC <= 1900 # define BOOST_MATH_RATIONAL_METHOD 1 +#else +# define BOOST_MATH_RATIONAL_METHOD 2 +#endif +#if BOOST_MSVC > 1900 +# define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT +# define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L +#endif + #elif defined(BOOST_INTEL) # define BOOST_MATH_POLY_METHOD 2 # define BOOST_MATH_RATIONAL_METHOD 1 + #elif defined(__GNUC__) #if __GNUC__ < 4 # define BOOST_MATH_POLY_METHOD 3 @@ -196,8 +206,18 @@ # define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L #else # define BOOST_MATH_POLY_METHOD 3 -# define BOOST_MATH_RATIONAL_METHOD 1 +# define BOOST_MATH_RATIONAL_METHOD 3 #endif + +#elif defined(__clang__) + +#if __clang__ > 6 +# define BOOST_MATH_POLY_METHOD 3 +# define BOOST_MATH_RATIONAL_METHOD 3 +# define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT +# define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L +#endif + #endif #if defined(BOOST_NO_LONG_LONG) && !defined(BOOST_MATH_INT_TABLE_TYPE) diff --git a/3rdparty/boost/boost/math/tools/promotion.hpp b/3rdparty/boost/boost/math/tools/promotion.hpp index 494d7f99e2..212bc3a6e4 100644 --- a/3rdparty/boost/boost/math/tools/promotion.hpp +++ b/3rdparty/boost/boost/math/tools/promotion.hpp @@ -84,15 +84,15 @@ namespace boost typedef typename promote_arg::type T1P; // T1 perhaps promoted. typedef typename promote_arg::type T2P; // T2 perhaps promoted. - typedef typename mpl::if_< - typename mpl::and_, is_floating_point >::type, // both T1P and T2P are floating-point? + typedef typename mpl::if_c< + is_floating_point::value && is_floating_point::value, // both T1P and T2P are floating-point? #ifdef BOOST_MATH_USE_FLOAT128 - typename mpl::if_< typename mpl::or_, is_same<__float128, T2P> >::type, // either long double? + typename mpl::if_c::value || is_same<__float128, T2P>::value, // either long double? __float128, #endif - typename mpl::if_< typename mpl::or_, is_same >::type, // either long double? + typename mpl::if_c::value || is_same::value, // either long double? long double, // then result type is long double. - typename mpl::if_< typename mpl::or_, is_same >::type, // either double? + typename mpl::if_c::value || is_same::value, // either double? double, // result type is double. float // else result type is float. >::type @@ -101,7 +101,7 @@ namespace boost #endif >::type, // else one or the other is a user-defined type: - typename mpl::if_< typename mpl::and_ >, ::boost::is_convertible >, T2P, T1P>::type>::type type; + typename mpl::if_c::value && ::boost::is_convertible::value, T2P, T1P>::type>::type type; }; // promote_arg2 // These full specialisations reduce mpl::if_ usage and speed up // compilation: diff --git a/3rdparty/boost/boost/math/tools/user.hpp b/3rdparty/boost/boost/math/tools/user.hpp index 08a7e53d9e..6d3df000c0 100644 --- a/3rdparty/boost/boost/math/tools/user.hpp +++ b/3rdparty/boost/boost/math/tools/user.hpp @@ -54,7 +54,7 @@ // // #define BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error // -// Underfow: +// Underflow: // // #define BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error // @@ -84,7 +84,7 @@ // // #define BOOST_MATH_ASSERT_UNDEFINED_POLICY true // -// Maximum series iterstions permitted: +// Maximum series iterations permitted: // // #define BOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000 // diff --git a/3rdparty/boost/boost/move/algo/move.hpp b/3rdparty/boost/boost/move/algo/move.hpp deleted file mode 100644 index 2390877a43..0000000000 --- a/3rdparty/boost/boost/move/algo/move.hpp +++ /dev/null @@ -1,156 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2016. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_ALGO_MOVE_HPP -#define BOOST_MOVE_ALGO_MOVE_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -#include -#include -#include -#include - -namespace boost { - -////////////////////////////////////////////////////////////////////////////// -// -// move -// -////////////////////////////////////////////////////////////////////////////// - -#if !defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - - //! Effects: Moves elements in the range [first,last) into the range [result,result + (last - - //! first)) starting from first and proceeding to last. For each non-negative integer n < (last-first), - //! performs *(result + n) = ::boost::move (*(first + n)). - //! - //! Effects: result + (last - first). - //! - //! Requires: result shall not be in the range [first,last). - //! - //! Complexity: Exactly last - first move assignments. - template // O models OutputIterator - O move(I f, I l, O result) - { - while (f != l) { - *result = ::boost::move(*f); - ++f; ++result; - } - return result; - } - - ////////////////////////////////////////////////////////////////////////////// - // - // move_backward - // - ////////////////////////////////////////////////////////////////////////////// - - //! Effects: Moves elements in the range [first,last) into the range - //! [result - (last-first),result) starting from last - 1 and proceeding to - //! first. For each positive integer n <= (last - first), - //! performs *(result - n) = ::boost::move(*(last - n)). - //! - //! Requires: result shall not be in the range [first,last). - //! - //! Returns: result - (last - first). - //! - //! Complexity: Exactly last - first assignments. - template // O models BidirectionalIterator - O move_backward(I f, I l, O result) - { - while (f != l) { - --l; --result; - *result = ::boost::move(*l); - } - return result; - } - -#else - - using ::std::move_backward; - -#endif //!defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - -////////////////////////////////////////////////////////////////////////////// -// -// uninitialized_move -// -////////////////////////////////////////////////////////////////////////////// - -//! Effects: -//! \code -//! for (; first != last; ++result, ++first) -//! new (static_cast(&*result)) -//! typename iterator_traits::value_type(boost::move(*first)); -//! \endcode -//! -//! Returns: result -template - // F models ForwardIterator -F uninitialized_move(I f, I l, F r - /// @cond -// ,typename ::boost::move_detail::enable_if::value_type> >::type* = 0 - /// @endcond - ) -{ - typedef typename boost::movelib::iterator_traits::value_type input_value_type; - - F back = r; - BOOST_TRY{ - while (f != l) { - void * const addr = static_cast(::boost::move_detail::addressof(*r)); - ::new(addr) input_value_type(::boost::move(*f)); - ++f; ++r; - } - } - BOOST_CATCH(...){ - for (; back != r; ++back){ - boost::movelib::iterator_to_raw_pointer(back)->~input_value_type(); - } - BOOST_RETHROW; - } - BOOST_CATCH_END - return r; -} - -/// @cond -/* -template - // F models ForwardIterator -F uninitialized_move(I f, I l, F r, - typename ::boost::move_detail::disable_if::value_type> >::type* = 0) -{ - return std::uninitialized_copy(f, l, r); -} -*/ - -/// @endcond - -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_ALGO_MOVE_HPP diff --git a/3rdparty/boost/boost/move/algorithm.hpp b/3rdparty/boost/boost/move/algorithm.hpp deleted file mode 100644 index 825d7716c2..0000000000 --- a/3rdparty/boost/boost/move/algorithm.hpp +++ /dev/null @@ -1,167 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_ALGORITHM_HPP -#define BOOST_MOVE_ALGORITHM_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -#include -#include -#include -#include - -#include //copy, copy_backward -#include //uninitialized_copy - -namespace boost { - -////////////////////////////////////////////////////////////////////////////// -// -// uninitialized_copy_or_move -// -////////////////////////////////////////////////////////////////////////////// - -namespace move_detail { - -template - // F models ForwardIterator -inline F uninitialized_move_move_iterator(I f, I l, F r -// ,typename ::boost::move_detail::enable_if< has_move_emulation_enabled >::type* = 0 -) -{ - return ::boost::uninitialized_move(f, l, r); -} -/* -template - // F models ForwardIterator -F uninitialized_move_move_iterator(I f, I l, F r, - typename ::boost::move_detail::disable_if< has_move_emulation_enabled >::type* = 0) -{ - return std::uninitialized_copy(f.base(), l.base(), r); -} -*/ -} //namespace move_detail { - -template - // F models ForwardIterator -inline F uninitialized_copy_or_move(I f, I l, F r, - typename ::boost::move_detail::enable_if< move_detail::is_move_iterator >::type* = 0) -{ - return ::boost::move_detail::uninitialized_move_move_iterator(f, l, r); -} - -////////////////////////////////////////////////////////////////////////////// -// -// copy_or_move -// -////////////////////////////////////////////////////////////////////////////// - -namespace move_detail { - -template - // F models ForwardIterator -inline F move_move_iterator(I f, I l, F r -// ,typename ::boost::move_detail::enable_if< has_move_emulation_enabled >::type* = 0 -) -{ - return ::boost::move(f, l, r); -} -/* -template - // F models ForwardIterator -F move_move_iterator(I f, I l, F r, - typename ::boost::move_detail::disable_if< has_move_emulation_enabled >::type* = 0) -{ - return std::copy(f.base(), l.base(), r); -} -*/ - -} //namespace move_detail { - -template - // F models ForwardIterator -inline F copy_or_move(I f, I l, F r, - typename ::boost::move_detail::enable_if< move_detail::is_move_iterator >::type* = 0) -{ - return ::boost::move_detail::move_move_iterator(f, l, r); -} - -/// @endcond - -//! Effects: -//! \code -//! for (; first != last; ++result, ++first) -//! new (static_cast(&*result)) -//! typename iterator_traits::value_type(*first); -//! \endcode -//! -//! Returns: result -//! -//! Note: This function is provided because -//! std::uninitialized_copy from some STL implementations -//! is not compatible with move_iterator -template - // F models ForwardIterator -inline F uninitialized_copy_or_move(I f, I l, F r - /// @cond - ,typename ::boost::move_detail::disable_if< move_detail::is_move_iterator >::type* = 0 - /// @endcond - ) -{ - return std::uninitialized_copy(f, l, r); -} - -//! Effects: -//! \code -//! for (; first != last; ++result, ++first) -//! *result = *first; -//! \endcode -//! -//! Returns: result -//! -//! Note: This function is provided because -//! std::uninitialized_copy from some STL implementations -//! is not compatible with move_iterator -template - // F models ForwardIterator -inline F copy_or_move(I f, I l, F r - /// @cond - ,typename ::boost::move_detail::disable_if< move_detail::is_move_iterator >::type* = 0 - /// @endcond - ) -{ - return std::copy(f, l, r); -} - -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_ALGORITHM_HPP diff --git a/3rdparty/boost/boost/move/core.hpp b/3rdparty/boost/boost/move/core.hpp index c0f5be59d4..b34740dcf8 100644 --- a/3rdparty/boost/boost/move/core.hpp +++ b/3rdparty/boost/boost/move/core.hpp @@ -60,7 +60,11 @@ #define BOOST_MOVE_TO_RV_CAST(RV_TYPE, ARG) reinterpret_cast(ARG) //Move emulation rv breaks standard aliasing rules so add workarounds for some compilers - #define BOOST_MOVE_ATTRIBUTE_MAY_ALIAS BOOST_MAY_ALIAS + #if defined(BOOST_GCC) && (BOOST_GCC >= 40400) && (BOOST_GCC < 40500) + #define BOOST_RV_ATTRIBUTE_MAY_ALIAS BOOST_MAY_ALIAS + #else + #define BOOST_RV_ATTRIBUTE_MAY_ALIAS + #endif namespace boost { @@ -70,7 +74,7 @@ // ////////////////////////////////////////////////////////////////////////////// template - class rv + class BOOST_RV_ATTRIBUTE_MAY_ALIAS rv : public ::boost::move_detail::if_c < ::boost::move_detail::is_class::value , T @@ -81,7 +85,7 @@ ~rv() throw(); rv(rv const&); void operator=(rv const&); - } BOOST_MOVE_ATTRIBUTE_MAY_ALIAS; + }; ////////////////////////////////////////////////////////////////////////////// diff --git a/3rdparty/boost/boost/move/detail/iterator_to_raw_pointer.hpp b/3rdparty/boost/boost/move/detail/iterator_to_raw_pointer.hpp deleted file mode 100644 index 97ee3a6595..0000000000 --- a/3rdparty/boost/boost/move/detail/iterator_to_raw_pointer.hpp +++ /dev/null @@ -1,59 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost -// Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_MOVE_DETAIL_ITERATOR_TO_RAW_POINTER_HPP -#define BOOST_MOVE_DETAIL_ITERATOR_TO_RAW_POINTER_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include - -namespace boost { -namespace movelib { -namespace detail { - -template -inline T* iterator_to_pointer(T* i) -{ return i; } - -template -inline typename boost::movelib::iterator_traits::pointer - iterator_to_pointer(const Iterator &i) -{ return i.operator->(); } - -template -struct iterator_to_element_ptr -{ - typedef typename boost::movelib::iterator_traits::pointer pointer; - typedef typename boost::movelib::pointer_element::type element_type; - typedef element_type* type; -}; - -} //namespace detail { - -template -inline typename boost::movelib::detail::iterator_to_element_ptr::type - iterator_to_raw_pointer(const Iterator &i) -{ - return ::boost::movelib::to_raw_pointer - ( ::boost::movelib::detail::iterator_to_pointer(i) ); -} - -} //namespace movelib { -} //namespace boost { - -#endif //#ifndef BOOST_MOVE_DETAIL_ITERATOR_TO_RAW_POINTER_HPP diff --git a/3rdparty/boost/boost/move/detail/iterator_traits.hpp b/3rdparty/boost/boost/move/detail/iterator_traits.hpp deleted file mode 100644 index 5ffcb2cf05..0000000000 --- a/3rdparty/boost/boost/move/detail/iterator_traits.hpp +++ /dev/null @@ -1,77 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2014-2014. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_DETAIL_ITERATOR_TRAITS_HPP -#define BOOST_MOVE_DETAIL_ITERATOR_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include - -#include -BOOST_MOVE_STD_NS_BEG - -struct input_iterator_tag; -struct forward_iterator_tag; -struct bidirectional_iterator_tag; -struct random_access_iterator_tag; -struct output_iterator_tag; - -BOOST_MOVE_STD_NS_END -#include - -namespace boost{ namespace movelib{ - -template -struct 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; - typedef typename boost::move_detail::make_unsigned::type size_type; -}; - -template -struct iterator_traits -{ - typedef std::ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef T& reference; - typedef std::random_access_iterator_tag iterator_category; - typedef typename boost::move_detail::make_unsigned::type size_type; -}; - -template -struct iterator_traits -{ - typedef std::ptrdiff_t difference_type; - typedef T value_type; - typedef const T* pointer; - typedef const T& reference; - typedef std::random_access_iterator_tag iterator_category; - typedef typename boost::move_detail::make_unsigned::type size_type; -}; - -}} //namespace boost { namespace movelib{ - -#endif //#ifndef BOOST_MOVE_DETAIL_ITERATOR_TRAITS_HPP diff --git a/3rdparty/boost/boost/move/detail/meta_utils.hpp b/3rdparty/boost/boost/move/detail/meta_utils.hpp index e45394c97d..f16e185d6d 100644 --- a/3rdparty/boost/boost/move/detail/meta_utils.hpp +++ b/3rdparty/boost/boost/move/detail/meta_utils.hpp @@ -67,6 +67,8 @@ typedef bool_ false_; // nat ////////////////////////////////////// struct nat{}; +struct nat2{}; +struct nat3{}; ////////////////////////////////////// // yes_type/no_type diff --git a/3rdparty/boost/boost/move/detail/meta_utils_core.hpp b/3rdparty/boost/boost/move/detail/meta_utils_core.hpp index 40dbb6efc3..4e11673834 100644 --- a/3rdparty/boost/boost/move/detail/meta_utils_core.hpp +++ b/3rdparty/boost/boost/move/detail/meta_utils_core.hpp @@ -27,6 +27,9 @@ namespace boost { namespace move_detail { +template +struct voider { typedef void type; }; + ////////////////////////////////////// // if_c ////////////////////////////////////// @@ -52,7 +55,9 @@ struct if_ : if_c<0 != T1::value, T2, T3> ////////////////////////////////////// // enable_if_c ////////////////////////////////////// -template +struct enable_if_nat{}; + +template struct enable_if_c { typedef T type; @@ -64,13 +69,13 @@ struct enable_if_c {}; ////////////////////////////////////// // enable_if ////////////////////////////////////// -template +template struct enable_if : enable_if_c {}; ////////////////////////////////////// // disable_if_c ////////////////////////////////////// -template +template struct disable_if_c : enable_if_c {}; @@ -78,7 +83,7 @@ struct disable_if_c ////////////////////////////////////// // disable_if ////////////////////////////////////// -template +template struct disable_if : enable_if_c {}; ////////////////////////////////////// @@ -117,13 +122,13 @@ struct is_same ////////////////////////////////////// // enable_if_same ////////////////////////////////////// -template +template struct enable_if_same : enable_if, R> {}; ////////////////////////////////////// // disable_if_same ////////////////////////////////////// -template +template struct disable_if_same : disable_if, R> {}; } //namespace move_detail { diff --git a/3rdparty/boost/boost/move/detail/pointer_element.hpp b/3rdparty/boost/boost/move/detail/pointer_element.hpp deleted file mode 100644 index ecdd6080ce..0000000000 --- a/3rdparty/boost/boost/move/detail/pointer_element.hpp +++ /dev/null @@ -1,168 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2014-2017. Distributed under the Boost -// Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_DETAIL_POINTER_ELEMENT_HPP -#define BOOST_MOVE_DETAIL_POINTER_ELEMENT_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#ifndef BOOST_MOVE_DETAIL_WORKAROUND_HPP -#include -#endif //BOOST_MOVE_DETAIL_WORKAROUND_HPP - -namespace boost { -namespace movelib { -namespace detail{ - -////////////////////// -//struct first_param -////////////////////// - -template struct first_param -{ typedef void type; }; - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - - template