Introduce detail::enabler instead of fusion::void_.

This commit is contained in:
Kohei Takahashi
2015-12-10 17:06:04 +09:00
parent 2492ff9b25
commit 64b8406c16
30 changed files with 98 additions and 67 deletions

View File

@@ -22,6 +22,7 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/fusion/support/detail/access.hpp> #include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/support/is_sequence.hpp> #include <boost/fusion/support/is_sequence.hpp>
#include <boost/fusion/container/deque/detail/keyed_element.hpp> #include <boost/fusion/container/deque/detail/keyed_element.hpp>
@@ -60,7 +61,7 @@ namespace boost { namespace fusion
typename enable_if< typename enable_if<
mpl::and_< mpl::and_<
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, result_of::empty<Sequence>>, void_>::type = void_()) BOOST_NOEXCEPT , result_of::empty<Sequence>>, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
{} {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
@@ -150,8 +151,8 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(Sequence const& seq explicit deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, Head>, void_>::type = void_() , typename disable_if<is_convertible<Sequence, Head>, detail::enabler_>::type = detail::enabler
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base(base::from_iterator(fusion::begin(seq))) : base(base::from_iterator(fusion::begin(seq)))
{} {}

View File

@@ -35,6 +35,7 @@
#include <boost/mpl/bool.hpp> #include <boost/mpl/bool.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/utility/enable_if.hpp> #include <boost/utility/enable_if.hpp>
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
@@ -102,8 +103,8 @@ namespace boost { namespace fusion {
template<typename Sequence> template<typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, T0>, void_>::type = void_() , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base(base::from_iterator(fusion::begin(seq))) : base(base::from_iterator(fusion::begin(seq)))
{} {}
@@ -133,7 +134,7 @@ FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
template <typename T0_> template <typename T0_>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0 explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0>, void_>::type = void_() , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
) )
: base(BOOST_FUSION_FWD_ELEM(T0_, t0), detail::nil_keyed_element()) : base(BOOST_FUSION_FWD_ELEM(T0_, t0), detail::nil_keyed_element())
{} {}
@@ -146,8 +147,8 @@ FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
deque(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>&& seq deque(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>&& seq
, typename disable_if< , typename disable_if<
is_convertible<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>, T0> is_convertible<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>, T0>
, void_ , detail::enabler_
>::type = void_()) >::type = detail::enabler)
: base(std::forward<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>>(seq)) : base(std::forward<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>>(seq))
{} {}
template <typename T> template <typename T>
@@ -181,7 +182,7 @@ FUSION_HASH endif
typename enable_if< typename enable_if<
mpl::and_< mpl::and_<
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, result_of::empty<Sequence> >, void_>::type = void_()) BOOST_NOEXCEPT , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
{} {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED

View File

@@ -202,8 +202,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template<typename Sequence> template<typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, T0>, void_>::type = void_() , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base(base::from_iterator(fusion::begin(seq))) : base(base::from_iterator(fusion::begin(seq)))
{} {}
template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9> template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
@@ -226,7 +226,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template <typename T0_> template <typename T0_>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0 explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0>, void_>::type = void_() , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
) )
: base(std::forward<T0_>( t0), detail::nil_keyed_element()) : base(std::forward<T0_>( t0), detail::nil_keyed_element())
{} {}
@@ -239,8 +239,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>&& seq deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>&& seq
, typename disable_if< , typename disable_if<
is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>, T0> is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>, T0>
, void_ , detail::enabler_
>::type = void_()) >::type = detail::enabler)
: base(std::forward<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>>(seq)) : base(std::forward<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>>(seq))
{} {}
template <typename T> template <typename T>
@@ -268,7 +268,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
typename enable_if< typename enable_if<
mpl::and_< mpl::and_<
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, result_of::empty<Sequence> >, void_>::type = void_()) BOOST_NOEXCEPT , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
{} {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque() BOOST_NOEXCEPT {} deque() BOOST_NOEXCEPT {}

View File

@@ -382,8 +382,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template<typename Sequence> template<typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, T0>, void_>::type = void_() , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base(base::from_iterator(fusion::begin(seq))) : base(base::from_iterator(fusion::begin(seq)))
{} {}
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> 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>
@@ -406,7 +406,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template <typename T0_> template <typename T0_>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0 explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0>, void_>::type = void_() , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
) )
: base(std::forward<T0_>( t0), detail::nil_keyed_element()) : base(std::forward<T0_>( t0), detail::nil_keyed_element())
{} {}
@@ -419,8 +419,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19>&& seq 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< , 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> is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19>, T0>
, void_ , detail::enabler_
>::type = void_()) >::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)) : 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> template <typename T>
@@ -448,7 +448,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
typename enable_if< typename enable_if<
mpl::and_< mpl::and_<
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, result_of::empty<Sequence> >, void_>::type = void_()) BOOST_NOEXCEPT , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
{} {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque() BOOST_NOEXCEPT {} deque() BOOST_NOEXCEPT {}

View File

@@ -562,8 +562,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template<typename Sequence> template<typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, T0>, void_>::type = void_() , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base(base::from_iterator(fusion::begin(seq))) : base(base::from_iterator(fusion::begin(seq)))
{} {}
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 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29> 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 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
@@ -586,7 +586,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template <typename T0_> template <typename T0_>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0 explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0>, void_>::type = void_() , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
) )
: base(std::forward<T0_>( t0), detail::nil_keyed_element()) : base(std::forward<T0_>( t0), detail::nil_keyed_element())
{} {}
@@ -599,8 +599,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29>&& seq deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29>&& seq
, typename disable_if< , 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 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29>, T0> is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29>, T0>
, void_ , detail::enabler_
>::type = void_()) >::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 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29>>(seq)) : base(std::forward<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29>>(seq))
{} {}
template <typename T> template <typename T>
@@ -628,7 +628,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
typename enable_if< typename enable_if<
mpl::and_< mpl::and_<
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, result_of::empty<Sequence> >, void_>::type = void_()) BOOST_NOEXCEPT , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
{} {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque() BOOST_NOEXCEPT {} deque() BOOST_NOEXCEPT {}

View File

@@ -742,8 +742,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template<typename Sequence> template<typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, T0>, void_>::type = void_() , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base(base::from_iterator(fusion::begin(seq))) : base(base::from_iterator(fusion::begin(seq)))
{} {}
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 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32 , typename U33 , typename U34 , typename U35 , typename U36 , typename U37 , typename U38 , typename U39> 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 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32 , typename U33 , typename U34 , typename U35 , typename U36 , typename U37 , typename U38 , typename U39>
@@ -766,7 +766,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template <typename T0_> template <typename T0_>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0 explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0>, void_>::type = void_() , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
) )
: base(std::forward<T0_>( t0), detail::nil_keyed_element()) : base(std::forward<T0_>( t0), detail::nil_keyed_element())
{} {}
@@ -779,8 +779,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39>&& seq deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39>&& seq
, typename disable_if< , 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 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39>, T0> is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39>, T0>
, void_ , detail::enabler_
>::type = void_()) >::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 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39>>(seq)) : base(std::forward<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39>>(seq))
{} {}
template <typename T> template <typename T>
@@ -808,7 +808,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
typename enable_if< typename enable_if<
mpl::and_< mpl::and_<
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, result_of::empty<Sequence> >, void_>::type = void_()) BOOST_NOEXCEPT , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
{} {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque() BOOST_NOEXCEPT {} deque() BOOST_NOEXCEPT {}

View File

@@ -922,8 +922,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template<typename Sequence> template<typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
deque(Sequence const& seq deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, T0>, void_>::type = void_() , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base(base::from_iterator(fusion::begin(seq))) : base(base::from_iterator(fusion::begin(seq)))
{} {}
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 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32 , typename U33 , typename U34 , typename U35 , typename U36 , typename U37 , typename U38 , typename U39 , typename U40 , typename U41 , typename U42 , typename U43 , typename U44 , typename U45 , typename U46 , typename U47 , typename U48 , typename U49> 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 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32 , typename U33 , typename U34 , typename U35 , typename U36 , typename U37 , typename U38 , typename U39 , typename U40 , typename U41 , typename U42 , typename U43 , typename U44 , typename U45 , typename U46 , typename U47 , typename U48 , typename U49>
@@ -946,7 +946,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
template <typename T0_> template <typename T0_>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
explicit deque(T0_&& t0 explicit deque(T0_&& t0
, typename enable_if<is_convertible<T0_, T0>, void_>::type = void_() , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
) )
: base(std::forward<T0_>( t0), detail::nil_keyed_element()) : base(std::forward<T0_>( t0), detail::nil_keyed_element())
{} {}
@@ -959,8 +959,8 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49>&& seq deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49>&& seq
, typename disable_if< , 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 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49>, T0> is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49>, T0>
, void_ , detail::enabler_
>::type = void_()) >::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 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49>>(seq)) : base(std::forward<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49>>(seq))
{} {}
template <typename T> template <typename T>
@@ -988,7 +988,7 @@ deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_
typename enable_if< typename enable_if<
mpl::and_< mpl::and_<
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, result_of::empty<Sequence> >, void_>::type = void_()) BOOST_NOEXCEPT , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
{} {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque() BOOST_NOEXCEPT {} deque() BOOST_NOEXCEPT {}

View File

@@ -10,6 +10,7 @@
#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/config.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/fusion/container/list/cons_fwd.hpp> #include <boost/fusion/container/list/cons_fwd.hpp>
#include <boost/fusion/support/detail/access.hpp> #include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
@@ -82,8 +83,8 @@ namespace boost { namespace fusion
traits::is_sequence<Sequence> traits::is_sequence<Sequence>
, mpl::not_<is_base_of<cons, Sequence> > , mpl::not_<is_base_of<cons, Sequence> >
, mpl::not_<is_convertible<Sequence, Car> > > // use copy to car instead , mpl::not_<is_convertible<Sequence, Car> > > // use copy to car instead
, void_ , detail::enabler_
>::type = void_() >::type = detail::enabler
) )
: car(*fusion::begin(seq)) : car(*fusion::begin(seq))
, cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {} , cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {}

View File

@@ -9,6 +9,7 @@
#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/config.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/fusion/container/list/detail/cpp03/list_fwd.hpp> #include <boost/fusion/container/list/detail/cpp03/list_fwd.hpp>
#include <boost/fusion/container/list/detail/cpp03/list_to_cons.hpp> #include <boost/fusion/container/list/detail/cpp03/list_to_cons.hpp>
#include <boost/fusion/support/is_sequence.hpp> #include <boost/fusion/support/is_sequence.hpp>
@@ -62,7 +63,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
list(Sequence const& rhs list(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: inherited_type(rhs) {} : inherited_type(rhs) {}
// Expand a couple of forwarding constructors for arguments // Expand a couple of forwarding constructors for arguments

View File

@@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
list(Sequence const& rhs list(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: inherited_type(rhs) {} : inherited_type(rhs) {}

View File

@@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
list(Sequence const& rhs list(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: inherited_type(rhs) {} : inherited_type(rhs) {}

View File

@@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
list(Sequence const& rhs list(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: inherited_type(rhs) {} : inherited_type(rhs) {}

View File

@@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
list(Sequence const& rhs list(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: inherited_type(rhs) {} : inherited_type(rhs) {}

View File

@@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
list(Sequence const& rhs list(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: inherited_type(rhs) {} : inherited_type(rhs) {}

View File

@@ -36,6 +36,7 @@
#include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/category_of.hpp> #include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/utility/enable_if.hpp> #include <boost/utility/enable_if.hpp>
@@ -69,21 +70,21 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
map(Sequence const& seq map(Sequence const& seq
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base_type(begin(seq), detail::map_impl_from_iterator()) : base_type(begin(seq), detail::map_impl_from_iterator())
{} {}
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
map(Sequence& seq map(Sequence& seq
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base_type(begin(seq), detail::map_impl_from_iterator()) : base_type(begin(seq), detail::map_impl_from_iterator())
{} {}
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
map(Sequence&& seq map(Sequence&& seq
, typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: base_type(begin(seq), detail::map_impl_from_iterator()) : base_type(begin(seq), detail::map_impl_from_iterator())
{} {}

View File

@@ -26,7 +26,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs set(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: data(rhs) {} : data(rhs) {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit explicit

View File

@@ -26,7 +26,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs set(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: data(rhs) {} : data(rhs) {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit explicit

View File

@@ -26,7 +26,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs set(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: data(rhs) {} : data(rhs) {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit explicit

View File

@@ -26,7 +26,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs set(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: data(rhs) {} : data(rhs) {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit explicit

View File

@@ -26,7 +26,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs set(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: data(rhs) {} : data(rhs) {}
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit explicit

View File

@@ -9,6 +9,7 @@
#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/config.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/fusion/support/is_sequence.hpp> #include <boost/fusion/support/is_sequence.hpp>
#include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/category_of.hpp> #include <boost/fusion/support/category_of.hpp>
@@ -72,7 +73,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs set(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: data(rhs) {} : data(rhs) {}
#include <boost/fusion/container/set/detail/cpp03/set_forward_ctor.hpp> #include <boost/fusion/container/set/detail/cpp03/set_forward_ctor.hpp>

View File

@@ -22,6 +22,7 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include <boost/fusion/support/detail/access.hpp> #include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/category_of.hpp> #include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/support/is_sequence.hpp> #include <boost/fusion/support/is_sequence.hpp>
@@ -61,8 +62,8 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs, set(Sequence const& rhs,
typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_(), typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler,
typename enable_if<detail::is_same_size<Sequence, storage_type>, void_>::type = void_()) typename enable_if<detail::is_same_size<Sequence, storage_type>, detail::enabler_>::type = detail::enabler)
: data(rhs) {} : data(rhs) {}
template <typename T> template <typename T>
@@ -103,8 +104,8 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
set(Sequence&& rhs, set(Sequence&& rhs,
typename enable_if<traits::is_sequence<Sequence>, void_>::type = void_(), typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler,
typename enable_if<detail::is_same_size<Sequence, storage_type>, void_>::type = void_()) typename enable_if<detail::is_same_size<Sequence, storage_type>, detail::enabler_>::type = detail::enabler)
: data(std::forward<Sequence>(rhs)) {} : data(std::forward<Sequence>(rhs)) {}
template <typename ...U> template <typename ...U>

View File

@@ -40,7 +40,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs, vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {} : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}

View File

@@ -40,7 +40,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs, vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {} : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}

View File

@@ -40,7 +40,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs, vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {} : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}

View File

@@ -40,7 +40,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs, vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {} : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}

View File

@@ -40,7 +40,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs, vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {} : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}

View File

@@ -12,6 +12,7 @@
#include <boost/preprocessor/repetition/enum_binary_params.hpp> #include <boost/preprocessor/repetition/enum_binary_params.hpp>
#include <boost/fusion/support/config.hpp> #include <boost/fusion/support/config.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/fusion/support/is_sequence.hpp> #include <boost/fusion/support/is_sequence.hpp>
#include <boost/fusion/container/vector/vector_fwd.hpp> #include <boost/fusion/container/vector/vector_fwd.hpp>
#include <boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp> #include <boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp>
@@ -119,7 +120,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs, vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_()) typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {} : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
// Expand a couple of forwarding constructors for arguments // Expand a couple of forwarding constructors for arguments

View File

@@ -25,6 +25,7 @@
#include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/is_sequence.hpp> #include <boost/fusion/support/is_sequence.hpp>
#include <boost/fusion/support/void.hpp> #include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/detail/enabler.hpp>
#include <boost/fusion/support/detail/index_sequence.hpp> #include <boost/fusion/support/detail/index_sequence.hpp>
#include <boost/fusion/container/vector/detail/at_impl.hpp> #include <boost/fusion/container/vector/detail/at_impl.hpp>
#include <boost/fusion/container/vector/detail/value_at_impl.hpp> #include <boost/fusion/container/vector/detail/value_at_impl.hpp>
@@ -165,7 +166,7 @@ namespace boost { namespace fusion
template <typename U> template <typename U>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
store(U&& rhs store(U&& rhs
, typename disable_if<is_same<typename pure<U>::type, store>, void_>::type = void_()) , typename disable_if<is_same<typename pure<U>::type, store>, detail::enabler_>::type = detail::enabler)
: elem(std::forward<U>(rhs)) : elem(std::forward<U>(rhs))
{} {}

View File

@@ -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 <boost/config.hpp>
namespace boost { namespace fusion { namespace detail
{
struct enabler_ {};
BOOST_STATIC_CONSTEXPR enabler_ enabler = {};
}}}
#endif