/*=============================================================================
    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<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19>
struct deque
    :
    detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::type,
    sequence_base<deque<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> >
{
    typedef deque_tag fusion_tag;
    typedef bidirectional_traversal_tag category;
    typedef typename detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::type base;
    typedef typename detail::deque_initial_size<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::type size;
    typedef mpl::int_<size::value> 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<T0 >::type t0, typename detail::call_param<T1 >::type t1)
        : base(detail::deque_keyed_values<T0, T1>::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<T0, T1>::construct(t0, t1))
    {}
    template <typename T_0, typename T_1>
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(T_0 && t0, T_1 && t1)
        : base(detail::deque_keyed_values<T0, T1>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2)
        : base(detail::deque_keyed_values<T0, T1, T2>::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<T0, T1, T2>::construct(t0, t1, t2))
    {}
    template <typename T_0, typename T_1, typename T_2>
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(T_0 && t0, T_1 && t1, T_2 && t2)
        : base(detail::deque_keyed_values<T0, T1, T2>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3)
        : base(detail::deque_keyed_values<T0, T1, T2, T3>::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<T0, T1, T2, T3>::construct(t0, t1, t2, t3))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3>
    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<T0, T1, T2, T3>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4>::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<T0, T1, T2, T3, T4>::construct(t0, t1, t2, t3, t4))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4>
    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<T0, T1, T2, T3, T4>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5>::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<T0, T1, T2, T3, T4, T5>::construct(t0, t1, t2, t3, t4, t5))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5>
    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<T0, T1, T2, T3, T4, T5>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6>::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<T0, T1, T2, T3, T4, T5, T6>::construct(t0, t1, t2, t3, t4, t5, t6))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6>
    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<T0, T1, T2, T3, T4, T5, T6>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7>::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<T0, T1, T2, T3, T4, T5, T6, T7>::construct(t0, t1, t2, t3, t4, t5, t6, t7))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7>
    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<T0, T1, T2, T3, T4, T5, T6, T7>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12, typename detail::call_param<T13 >::type t13)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12, typename T_13>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12), std::forward<T_13>( t13)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12, typename detail::call_param<T13 >::type t13, typename detail::call_param<T14 >::type t14)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12, typename T_13, typename T_14>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12), std::forward<T_13>( t13), std::forward<T_14>( t14)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12, typename detail::call_param<T13 >::type t13, typename detail::call_param<T14 >::type t14, typename detail::call_param<T15 >::type t15)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12, typename T_13, typename T_14, typename T_15>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12), std::forward<T_13>( t13), std::forward<T_14>( t14), std::forward<T_15>( t15)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12, typename detail::call_param<T13 >::type t13, typename detail::call_param<T14 >::type t14, typename detail::call_param<T15 >::type t15, typename detail::call_param<T16 >::type t16)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12, typename T_13, typename T_14, typename T_15, typename T_16>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12), std::forward<T_13>( t13), std::forward<T_14>( t14), std::forward<T_15>( t15), std::forward<T_16>( t16)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12, typename detail::call_param<T13 >::type t13, typename detail::call_param<T14 >::type t14, typename detail::call_param<T15 >::type t15, typename detail::call_param<T16 >::type t16, typename detail::call_param<T17 >::type t17)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12, typename T_13, typename T_14, typename T_15, typename T_16, typename T_17>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12), std::forward<T_13>( t13), std::forward<T_14>( t14), std::forward<T_15>( t15), std::forward<T_16>( t16), std::forward<T_17>( t17)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12, typename detail::call_param<T13 >::type t13, typename detail::call_param<T14 >::type t14, typename detail::call_param<T15 >::type t15, typename detail::call_param<T16 >::type t16, typename detail::call_param<T17 >::type t17, typename detail::call_param<T18 >::type t18)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12, typename T_13, typename T_14, typename T_15, typename T_16, typename T_17, typename T_18>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12), std::forward<T_13>( t13), std::forward<T_14>( t14), std::forward<T_15>( t15), std::forward<T_16>( t16), std::forward<T_17>( t17), std::forward<T_18>( t18)))
    {}
# endif
# if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(typename detail::call_param<T0 >::type t0, typename detail::call_param<T1 >::type t1, typename detail::call_param<T2 >::type t2, typename detail::call_param<T3 >::type t3, typename detail::call_param<T4 >::type t4, typename detail::call_param<T5 >::type t5, typename detail::call_param<T6 >::type t6, typename detail::call_param<T7 >::type t7, typename detail::call_param<T8 >::type t8, typename detail::call_param<T9 >::type t9, typename detail::call_param<T10 >::type t10, typename detail::call_param<T11 >::type t11, typename detail::call_param<T12 >::type t12, typename detail::call_param<T13 >::type t13, typename detail::call_param<T14 >::type t14, typename detail::call_param<T15 >::type t15, typename detail::call_param<T16 >::type t16, typename detail::call_param<T17 >::type t17, typename detail::call_param<T18 >::type t18, typename detail::call_param<T19 >::type t19)
        : base(detail::deque_keyed_values<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::construct(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19))
    {}
    template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7, typename T_8, typename T_9, typename T_10, typename T_11, typename T_12, typename T_13, typename T_14, typename T_15, typename T_16, typename T_17, typename T_18, typename T_19>
    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<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::
               forward_(std::forward<T_0>( t0), std::forward<T_1>( t1), std::forward<T_2>( t2), std::forward<T_3>( t3), std::forward<T_4>( t4), std::forward<T_5>( t5), std::forward<T_6>( t6), std::forward<T_7>( t7), std::forward<T_8>( t8), std::forward<T_9>( t9), std::forward<T_10>( t10), std::forward<T_11>( t11), std::forward<T_12>( t12), std::forward<T_13>( t13), std::forward<T_14>( t14), std::forward<T_15>( t15), std::forward<T_16>( t16), std::forward<T_17>( t17), std::forward<T_18>( t18), std::forward<T_19>( t19)))
    {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque()
    {}
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    explicit
    deque(typename detail::call_param<T0>::type t0)
        : base(t0, detail::nil_keyed_element())
    {}
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    explicit
    deque(deque const& rhs)
        : base(rhs)
    {}
    template<typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
    BOOST_FUSION_GPU_ENABLED
    deque(deque<U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19> const& seq)
        : base(seq)
    {}
    template<typename Sequence>
    BOOST_FUSION_GPU_ENABLED
    deque(Sequence const& seq
          , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
          , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
        : base(base::from_iterator(fusion::begin(seq)))
    {}
    template <typename T>
    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 <typename T0_>
    BOOST_FUSION_GPU_ENABLED
    explicit
    deque(T0_&& t0
          , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
          , typename disable_if_c<
          boost::is_same<deque const, typename boost::remove_reference<T0_>::type const>::value
          , detail::enabler_
          >::type = detail::enabler
         )
        : base(std::forward<T0_>( t0), detail::nil_keyed_element())
    {}
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    explicit
    deque(deque&& rhs)
        : base(std::forward<deque>(rhs))
    {}
    template<typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
    BOOST_FUSION_GPU_ENABLED
    deque(deque<U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>&& seq
          , typename disable_if<
          is_convertible<deque<U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>, T0>
          , detail::enabler_
          >::type = detail::enabler)
        : base(std::forward<deque<U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>>(seq))
    {}
    template <typename T>
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque&
    operator=(T&& rhs)
    {
        base::operator=(std::forward<T>( rhs));
        return *this;
    }

    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque&
    operator=(deque const& rhs)
    {
        base::operator=(static_cast<base const&>(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 <typename Sequence>
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque(Sequence const&,
          typename enable_if<
          mpl::and_<
          traits::is_sequence<Sequence>
    , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
    {}
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    deque() BOOST_NOEXCEPT {}
};
}
}
