/*=============================================================================
    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 fusion_sequence_tag;
template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
struct map : sequence_base<map<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >
{
    struct category : random_access_traversal_tag, associative_tag {};
    typedef map_tag fusion_tag;
    typedef fusion_sequence_tag tag;
    typedef mpl::false_ is_view;
    typedef vector<
    T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>
    storage_type;
    typedef typename storage_type::size size;
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map()
        : data() {}
    BOOST_FUSION_GPU_ENABLED
    map(map const& rhs)
        : data(rhs.data) {}
    template <typename Sequence>
    BOOST_FUSION_GPU_ENABLED
    map(Sequence const& rhs)
        : data(rhs) {}
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    explicit
    map(typename detail::call_param<T0 >::type arg0)
        : data(arg0) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0>
    BOOST_FUSION_GPU_ENABLED
    explicit
    map(U0 && arg0

# if defined(BOOST_MSVC) && (BOOST_MSVC == 1700)
        , typename enable_if<is_same<U0, T0> >::type* = 0
# endif
       )
        : data(std::forward<U0>( arg0)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1)
        : data(arg0, arg1) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2)
        : data(arg0, arg1, arg2) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2, typename detail::call_param<T3 >::type arg3)
        : data(arg0, arg1, arg2, arg3) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2, typename U3>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2, U3 && arg3
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2), std::forward<U3>( arg3)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2, typename detail::call_param<T3 >::type arg3, typename detail::call_param<T4 >::type arg4)
        : data(arg0, arg1, arg2, arg3, arg4) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2, typename U3, typename U4>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2, U3 && arg3, U4 && arg4
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2), std::forward<U3>( arg3), std::forward<U4>( arg4)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2, typename detail::call_param<T3 >::type arg3, typename detail::call_param<T4 >::type arg4, typename detail::call_param<T5 >::type arg5)
        : data(arg0, arg1, arg2, arg3, arg4, arg5) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2, U3 && arg3, U4 && arg4, U5 && arg5
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2), std::forward<U3>( arg3), std::forward<U4>( arg4), std::forward<U5>( arg5)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2, typename detail::call_param<T3 >::type arg3, typename detail::call_param<T4 >::type arg4, typename detail::call_param<T5 >::type arg5, typename detail::call_param<T6 >::type arg6)
        : data(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2, U3 && arg3, U4 && arg4, U5 && arg5, U6 && arg6
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2), std::forward<U3>( arg3), std::forward<U4>( arg4), std::forward<U5>( arg5), std::forward<U6>( arg6)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2, typename detail::call_param<T3 >::type arg3, typename detail::call_param<T4 >::type arg4, typename detail::call_param<T5 >::type arg5, typename detail::call_param<T6 >::type arg6, typename detail::call_param<T7 >::type arg7)
        : data(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2, U3 && arg3, U4 && arg4, U5 && arg5, U6 && arg6, U7 && arg7
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2), std::forward<U3>( arg3), std::forward<U4>( arg4), std::forward<U5>( arg5), std::forward<U6>( arg6), std::forward<U7>( arg7)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2, typename detail::call_param<T3 >::type arg3, typename detail::call_param<T4 >::type arg4, typename detail::call_param<T5 >::type arg5, typename detail::call_param<T6 >::type arg6, typename detail::call_param<T7 >::type arg7, typename detail::call_param<T8 >::type arg8)
        : data(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2, U3 && arg3, U4 && arg4, U5 && arg5, U6 && arg6, U7 && arg7, U8 && arg8
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2), std::forward<U3>( arg3), std::forward<U4>( arg4), std::forward<U5>( arg5), std::forward<U6>( arg6), std::forward<U7>( arg7), std::forward<U8>( arg8)) {}
# endif
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(typename detail::call_param<T0 >::type arg0, typename detail::call_param<T1 >::type arg1, typename detail::call_param<T2 >::type arg2, typename detail::call_param<T3 >::type arg3, typename detail::call_param<T4 >::type arg4, typename detail::call_param<T5 >::type arg5, typename detail::call_param<T6 >::type arg6, typename detail::call_param<T7 >::type arg7, typename detail::call_param<T8 >::type arg8, typename detail::call_param<T9 >::type arg9)
        : data(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {}
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
    BOOST_FUSION_GPU_ENABLED
    map(U0 && arg0, U1 && arg1, U2 && arg2, U3 && arg3, U4 && arg4, U5 && arg5, U6 && arg6, U7 && arg7, U8 && arg8, U9 && arg9
       )
        : data(std::forward<U0>( arg0), std::forward<U1>( arg1), std::forward<U2>( arg2), std::forward<U3>( arg3), std::forward<U4>( arg4), std::forward<U5>( arg5), std::forward<U6>( arg6), std::forward<U7>( arg7), std::forward<U8>( arg8), std::forward<U9>( arg9)) {}
# endif
    template <typename T>
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map&
    operator=(T const& rhs)
    {
        data = rhs;
        return *this;
    }
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map&
    operator=(map const& rhs)
    {
        data = rhs.data;
        return *this;
    }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map(map&& rhs)
        : data(std::move(rhs.data)) {}
    template <typename T>
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map&
    operator=(T&& rhs)
    {
        data = std::forward<T>( rhs);
        return *this;
    }
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    map&
    operator=(map&& rhs)
    {
        data = std::move(rhs.data);
        return *this;
    }
# endif
    BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    storage_type&
    get_data()
    {
        return data;
    }
    BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
    storage_type const&
    get_data() const
    {
        return data;
    }
  private:
    storage_type data;
};
}
}
