diff --git a/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp b/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp index 2bc56b1f..87ab09fa 100644 --- a/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp +++ b/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp @@ -445,12 +445,14 @@ (NAME, ATTRIBUTES_SEQ) \ \ template \ + BOOST_FUSION_GPU_ENABLED \ NAME(const boost_fusion_detail_Seq& rhs) \ { \ boost::fusion::copy(rhs, *this); \ } \ \ template \ + BOOST_FUSION_GPU_ENABLED \ NAME& operator=(const boost_fusion_detail_Seq& rhs) \ { \ boost::fusion::copy(rhs, *this); \ diff --git a/include/boost/fusion/container/map/convert.hpp b/include/boost/fusion/container/map/convert.hpp index 444935aa..d106610b 100644 --- a/include/boost/fusion/container/map/convert.hpp +++ b/include/boost/fusion/container/map/convert.hpp @@ -17,6 +17,7 @@ namespace boost { namespace fusion { namespace detail { typedef typename result_of::value_of::type type; + BOOST_FUSION_GPU_ENABLED static inline type call(It const& it) { return *it; @@ -30,6 +31,7 @@ namespace boost { namespace fusion { namespace detail typedef typename result_of::value_of_data::type data_type; typedef typename fusion::pair type; + BOOST_FUSION_GPU_ENABLED static inline type call(It const& it) { return type(deref_data(it)); diff --git a/include/boost/fusion/functional/adapter/fused.hpp b/include/boost/fusion/functional/adapter/fused.hpp index 0dfbc51b..c6b1b03c 100644 --- a/include/boost/fusion/functional/adapter/fused.hpp +++ b/include/boost/fusion/functional/adapter/fused.hpp @@ -37,6 +37,7 @@ namespace boost { namespace fusion public: + BOOST_FUSION_GPU_ENABLED inline explicit fused(func_const_fwd_t f = Function()) : fnc_transformed(f) { } diff --git a/include/boost/fusion/functional/adapter/fused_function_object.hpp b/include/boost/fusion/functional/adapter/fused_function_object.hpp index 54f1a40f..b3973a11 100644 --- a/include/boost/fusion/functional/adapter/fused_function_object.hpp +++ b/include/boost/fusion/functional/adapter/fused_function_object.hpp @@ -37,6 +37,7 @@ namespace boost { namespace fusion public: + BOOST_FUSION_GPU_ENABLED inline explicit fused_function_object(func_const_fwd_t f = Function()) : fnc_transformed(f) { } diff --git a/include/boost/fusion/functional/adapter/fused_procedure.hpp b/include/boost/fusion/functional/adapter/fused_procedure.hpp index a5bb7862..495320af 100644 --- a/include/boost/fusion/functional/adapter/fused_procedure.hpp +++ b/include/boost/fusion/functional/adapter/fused_procedure.hpp @@ -37,6 +37,7 @@ namespace boost { namespace fusion public: + BOOST_FUSION_GPU_ENABLED inline explicit fused_procedure(func_const_fwd_t f = Function()) : fnc_transformed(f) { } diff --git a/include/boost/fusion/functional/adapter/unfused.hpp b/include/boost/fusion/functional/adapter/unfused.hpp index a4df79ed..b02f5d28 100644 --- a/include/boost/fusion/functional/adapter/unfused.hpp +++ b/include/boost/fusion/functional/adapter/unfused.hpp @@ -79,6 +79,7 @@ namespace boost { namespace fusion typedef typename detail::call_param::type func_const_fwd_t; public: + BOOST_FUSION_GPU_ENABLED inline explicit unfused(func_const_fwd_t f = function()) : fnc_transformed(f) { } diff --git a/include/boost/fusion/functional/adapter/unfused_typed.hpp b/include/boost/fusion/functional/adapter/unfused_typed.hpp index be8964dc..c3ab33dd 100644 --- a/include/boost/fusion/functional/adapter/unfused_typed.hpp +++ b/include/boost/fusion/functional/adapter/unfused_typed.hpp @@ -63,6 +63,7 @@ namespace boost { namespace fusion public: + BOOST_FUSION_GPU_ENABLED inline explicit unfused_typed(func_const_fwd_t f = Function()) : fnc_transformed(f) { } @@ -129,7 +130,8 @@ namespace boost #define M(z,i,s) \ typename call_param::type>::type a##i - inline typename boost::result_of< + BOOST_FUSION_GPU_ENABLED + inline typename boost::result_of< function_c(arg_vector_t &) >::type operator()(BOOST_PP_ENUM(N,M,arg_vector_t)) const { @@ -141,7 +143,8 @@ namespace boost return static_cast(this)->fnc_transformed(arg); } - BOOST_FUSION_GPU_ENABLED inline typename boost::result_of< + BOOST_FUSION_GPU_ENABLED + inline typename boost::result_of< function(arg_vector_t &) >::type operator()(BOOST_PP_ENUM(N,M,arg_vector_t)) { diff --git a/include/boost/fusion/iterator/iterator_adapter.hpp b/include/boost/fusion/iterator/iterator_adapter.hpp index a3cb7e48..af6978b2 100644 --- a/include/boost/fusion/iterator/iterator_adapter.hpp +++ b/include/boost/fusion/iterator/iterator_adapter.hpp @@ -24,6 +24,7 @@ namespace boost { namespace fusion iterator_base_type; iterator_base_type iterator_base; + BOOST_FUSION_GPU_ENABLED iterator_adapter(iterator_base_type const& iterator_base_) : iterator_base(iterator_base_) {} diff --git a/include/boost/fusion/sequence/io/detail/in.hpp b/include/boost/fusion/sequence/io/detail/in.hpp index 091e193f..d0a8dc49 100644 --- a/include/boost/fusion/sequence/io/detail/in.hpp +++ b/include/boost/fusion/sequence/io/detail/in.hpp @@ -27,7 +27,6 @@ namespace boost { namespace fusion { namespace detail { // read a delimiter template - BOOST_FUSION_GPU_ENABLED static void read(IS& is, char const* delim, mpl::false_ = mpl::false_()) { @@ -36,7 +35,6 @@ namespace boost { namespace fusion { namespace detail } template - BOOST_FUSION_GPU_ENABLED static void read(IS&, char const*, mpl::true_) { @@ -46,14 +44,12 @@ namespace boost { namespace fusion { namespace detail struct read_sequence_loop { template - BOOST_FUSION_GPU_ENABLED static void call(IS&, First const&, Last const&, mpl::true_) { } template - BOOST_FUSION_GPU_ENABLED static void call(IS& is, First const& first, Last const& last, mpl::false_) { @@ -69,7 +65,6 @@ namespace boost { namespace fusion { namespace detail } template - BOOST_FUSION_GPU_ENABLED static void call(IS& is, First const& first, Last const& last) { @@ -79,7 +74,6 @@ namespace boost { namespace fusion { namespace detail }; template - BOOST_FUSION_GPU_ENABLED inline void read_sequence(IS& is, Sequence& seq) { diff --git a/include/boost/fusion/sequence/io/detail/manip.hpp b/include/boost/fusion/sequence/io/detail/manip.hpp index 2fc4de3b..8d8c296d 100644 --- a/include/boost/fusion/sequence/io/detail/manip.hpp +++ b/include/boost/fusion/sequence/io/detail/manip.hpp @@ -36,7 +36,6 @@ namespace boost { namespace fusion namespace detail { template - BOOST_FUSION_GPU_ENABLED int get_xalloc_index(Tag* = 0) { // each Tag will have a unique index @@ -49,7 +48,6 @@ namespace boost { namespace fusion { struct arena { - BOOST_FUSION_GPU_ENABLED ~arena() { for ( @@ -64,7 +62,6 @@ namespace boost { namespace fusion std::vector data; }; - BOOST_FUSION_GPU_ENABLED static void attach(Stream& stream, T const& data) { static arena ar; // our arena @@ -72,7 +69,6 @@ namespace boost { namespace fusion stream.pword(get_xalloc_index()) = ar.data.back(); } - BOOST_FUSION_GPU_ENABLED static T const* get(Stream& stream) { return (T const*)stream.pword(get_xalloc_index()); @@ -88,19 +84,16 @@ namespace boost { namespace fusion typedef stream_data stream_data_t; - BOOST_FUSION_GPU_ENABLED string_ios_manip(Stream& str_) : stream(str_) {} - BOOST_FUSION_GPU_ENABLED void set(string_type const& s) { stream_data_t::attach(stream, s); } - BOOST_FUSION_GPU_ENABLED void print(char const* default_) const { @@ -112,7 +105,6 @@ namespace boost { namespace fusion stream << default_; } - BOOST_FUSION_GPU_ENABLED void read(char const* default_) const { @@ -137,7 +129,6 @@ namespace boost { namespace fusion private: template - BOOST_FUSION_GPU_ENABLED void check_delim(Char c) const { @@ -165,35 +156,30 @@ namespace boost { namespace fusion #define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name) \ template \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(const std::basic_string& s) \ { \ return detail::name##_type(s); \ } \ \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(char const* s) \ { \ return detail::name##_type(std::basic_string(s)); \ } \ \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(wchar_t const* s) \ { \ return detail::name##_type(std::basic_string(s)); \ } \ \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(char c) \ { \ return detail::name##_type(std::basic_string(1, c)); \ } \ \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(wchar_t c) \ { \ @@ -204,7 +190,6 @@ namespace boost { namespace fusion #define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name) \ template \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(const std::basic_string& s) \ { \ @@ -212,7 +197,6 @@ namespace boost { namespace fusion } \ \ template \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(Char s[]) \ { \ @@ -220,7 +204,6 @@ namespace boost { namespace fusion } \ \ template \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(Char const s[]) \ { \ @@ -228,7 +211,6 @@ namespace boost { namespace fusion } \ \ template \ - BOOST_FUSION_GPU_ENABLED \ inline detail::name##_type \ name(Char c) \ { \ @@ -247,12 +229,10 @@ namespace boost { namespace fusion { \ typedef std::basic_string string_type; \ string_type data; \ - BOOST_FUSION_GPU_ENABLED \ name##_type(const string_type& d): data(d) {} \ }; \ \ template \ - BOOST_FUSION_GPU_ENABLED \ Stream& operator>>(Stream& s, const name##_type& m) \ { \ string_ios_manip(s).set(m.data); \ @@ -260,7 +240,6 @@ namespace boost { namespace fusion } \ \ template \ - BOOST_FUSION_GPU_ENABLED \ Stream& operator<<(Stream& s, const name##_type& m) \ { \ string_ios_manip(s).set(m.data); \ diff --git a/include/boost/fusion/sequence/io/detail/out.hpp b/include/boost/fusion/sequence/io/detail/out.hpp index 9fd9b158..7da87a53 100644 --- a/include/boost/fusion/sequence/io/detail/out.hpp +++ b/include/boost/fusion/sequence/io/detail/out.hpp @@ -27,7 +27,6 @@ namespace boost { namespace fusion { namespace detail { // print a delimiter template - BOOST_FUSION_GPU_ENABLED static void print(OS& os, char const* delim, mpl::false_ = mpl::false_()) { @@ -36,7 +35,6 @@ namespace boost { namespace fusion { namespace detail } template - BOOST_FUSION_GPU_ENABLED static void print(OS&, char const*, mpl::true_) { @@ -46,14 +44,12 @@ namespace boost { namespace fusion { namespace detail struct print_sequence_loop { template - BOOST_FUSION_GPU_ENABLED static void call(OS&, First const&, Last const&, mpl::true_) { } template - BOOST_FUSION_GPU_ENABLED static void call(OS& os, First const& first, Last const& last, mpl::false_) { @@ -69,7 +65,6 @@ namespace boost { namespace fusion { namespace detail } template - BOOST_FUSION_GPU_ENABLED static void call(OS& os, First const& first, Last const& last) { @@ -79,7 +74,6 @@ namespace boost { namespace fusion { namespace detail }; template - BOOST_FUSION_GPU_ENABLED inline void print_sequence(OS& os, Sequence const& seq) { diff --git a/include/boost/fusion/support/pair.hpp b/include/boost/fusion/support/pair.hpp index f92d3c56..c547926e 100644 --- a/include/boost/fusion/support/pair.hpp +++ b/include/boost/fusion/support/pair.hpp @@ -77,6 +77,7 @@ namespace boost { namespace fusion } #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + BOOST_FUSION_GPU_ENABLED pair& operator=(pair&& rhs) { second = std::forward(rhs.second); diff --git a/include/boost/fusion/support/sequence_base.hpp b/include/boost/fusion/support/sequence_base.hpp index c9aa5f79..b59121c0 100644 --- a/include/boost/fusion/support/sequence_base.hpp +++ b/include/boost/fusion/support/sequence_base.hpp @@ -22,18 +22,21 @@ namespace boost { namespace fusion template struct sequence_base { + BOOST_FUSION_GPU_ENABLED Sequence const& derived() const { return static_cast(*this); } + BOOST_FUSION_GPU_ENABLED Sequence& derived() { return static_cast(*this); } + BOOST_FUSION_GPU_ENABLED operator detail::from_sequence_convertible_type()const { return detail::from_sequence_convertible_type();