diff options
Diffstat (limited to 'boost/fusion/algorithm/auxiliary/copy.hpp')
-rw-r--r-- | boost/fusion/algorithm/auxiliary/copy.hpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/boost/fusion/algorithm/auxiliary/copy.hpp b/boost/fusion/algorithm/auxiliary/copy.hpp index 7ac8e6f589..ec240bae65 100644 --- a/boost/fusion/algorithm/auxiliary/copy.hpp +++ b/boost/fusion/algorithm/auxiliary/copy.hpp @@ -16,7 +16,7 @@ #include <boost/config.hpp> #include <boost/static_assert.hpp> #include <boost/utility/enable_if.hpp> -#include <boost/type_traits/ice.hpp> +#include <boost/mpl/and.hpp> #if defined (BOOST_MSVC) # pragma warning(push) @@ -34,14 +34,14 @@ namespace boost { namespace fusion typedef typename result_of::end<Seq2>::type end2_type; template <typename I1, typename I2> - BOOST_FUSION_GPU_ENABLED + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED static void call(I1 const&, I2 const&, mpl::true_) { } template <typename I1, typename I2> - BOOST_FUSION_GPU_ENABLED + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED static void call(I1 const& src, I2 const& dest, mpl::false_) { @@ -50,7 +50,7 @@ namespace boost { namespace fusion } template <typename I1, typename I2> - BOOST_FUSION_GPU_ENABLED + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED static void call(I1 const& src, I2 const& dest) { @@ -60,17 +60,19 @@ namespace boost { namespace fusion }; } + namespace result_of + { + template <typename Seq1, typename Seq2> + struct copy + : enable_if<mpl::and_< + traits::is_sequence<Seq1>, + traits::is_sequence<Seq2> + > > {}; + } + template <typename Seq1, typename Seq2> - BOOST_FUSION_GPU_ENABLED - inline - typename - enable_if_c< - type_traits::ice_and< - traits::is_sequence<Seq1>::value - , traits::is_sequence<Seq2>::value - >::value, - void - >::type + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename result_of::copy<Seq1 const, Seq2>::type copy(Seq1 const& src, Seq2& dest) { BOOST_STATIC_ASSERT( |