diff options
Diffstat (limited to 'boost/fusion/container/list')
-rw-r--r-- | boost/fusion/container/list/cons.hpp | 4 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/limits.hpp (renamed from boost/fusion/container/list/limits.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/list.hpp | 102 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp (renamed from boost/fusion/container/list/detail/list_forward_ctor.hpp) | 2 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/list_fwd.hpp | 51 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/list_to_cons.hpp | 76 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp (renamed from boost/fusion/container/list/detail/list_to_cons_call.hpp) | 2 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list.hpp) | 10 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list10.hpp) | 4 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list20.hpp) | 4 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list30.hpp) | 4 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list40.hpp) | 4 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list50.hpp) | 4 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list_fwd.hpp) | 10 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list_to_cons.hpp) | 10 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list_to_cons10.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list_to_cons20.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list_to_cons30.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list_to_cons40.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp (renamed from boost/fusion/container/list/detail/preprocessed/list_to_cons50.hpp) | 0 | ||||
-rw-r--r-- | boost/fusion/container/list/detail/list_to_cons.hpp | 89 | ||||
-rw-r--r-- | boost/fusion/container/list/list.hpp | 136 | ||||
-rw-r--r-- | boost/fusion/container/list/list_fwd.hpp | 52 |
28 files changed, 398 insertions, 166 deletions
diff --git a/boost/fusion/container/list/cons.hpp b/boost/fusion/container/list/cons.hpp index 61d8dbcfe1..e05b62eb48 100644 --- a/boost/fusion/container/list/cons.hpp +++ b/boost/fusion/container/list/cons.hpp @@ -23,6 +23,7 @@ #include <boost/fusion/container/list/detail/value_at_impl.hpp> #include <boost/fusion/container/list/detail/empty_impl.hpp> #include <boost/type_traits/is_convertible.hpp> +#include <boost/type_traits/is_base_of.hpp> #include <boost/utility/enable_if.hpp> #include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/is_sequence.hpp> @@ -73,12 +74,13 @@ namespace boost { namespace fusion : car(rhs.car), cdr(rhs.cdr) {} template <typename Sequence> - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_FUSION_GPU_ENABLED cons( Sequence const& seq , typename boost::enable_if< mpl::and_< traits::is_sequence<Sequence> + , mpl::not_<is_base_of<cons, Sequence> > , mpl::not_<is_convertible<Sequence, Car> > > // use copy to car instead >::type* /*dummy*/ = 0 ) diff --git a/boost/fusion/container/list/limits.hpp b/boost/fusion/container/list/detail/cpp03/limits.hpp index cc64ad7224..cc64ad7224 100644 --- a/boost/fusion/container/list/limits.hpp +++ b/boost/fusion/container/list/detail/cpp03/limits.hpp diff --git a/boost/fusion/container/list/detail/cpp03/list.hpp b/boost/fusion/container/list/detail/cpp03/list.hpp new file mode 100644 index 0000000000..b39489b0b7 --- /dev/null +++ b/boost/fusion/container/list/detail/cpp03/list.hpp @@ -0,0 +1,102 @@ +/*============================================================================= + 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) +==============================================================================*/ +#if !defined(FUSION_LIST_07172005_1153) +#define FUSION_LIST_07172005_1153 + +#include <boost/fusion/support/config.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/support/is_sequence.hpp> +#include <boost/core/enable_if.hpp> + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp> +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list" FUSION_MAX_LIST_SIZE_STR ".hpp") +#endif + +/*============================================================================= + 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! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct nil_; + struct void_; + + template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)> + struct list + : detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>::type + { + private: + typedef + detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)> + list_to_cons; + typedef typename list_to_cons::type inherited_type; + + public: + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list() + : inherited_type() {} + + template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)> + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs) + : inherited_type(rhs) {} + + template <typename Sequence> + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs + , typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0) + : inherited_type(rhs) {} + + // Expand a couple of forwarding constructors for arguments + // of type (T0), (T0, T1), (T0, T1, T2) etc. Exanple: + // + // list( + // typename detail::call_param<T0>::type arg0 + // , typename detail::call_param<T1>::type arg1) + // : inherited_type(list_to_cons::call(arg0, arg1)) {} + #include <boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp> + + template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)> + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + + template <typename Sequence> + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + typename boost::enable_if<traits::is_sequence<Sequence>, list&>::type + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } + }; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/boost/fusion/container/list/detail/list_forward_ctor.hpp b/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp index a5c8aa66c9..f9a706786b 100644 --- a/boost/fusion/container/list/detail/list_forward_ctor.hpp +++ b/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp @@ -18,7 +18,7 @@ #define FUSION_LIST_CL_PAREN(z, n, type) ) #define BOOST_PP_FILENAME_1 \ - <boost/fusion/container/list/detail/list_forward_ctor.hpp> + <boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp> #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE) #include BOOST_PP_ITERATE() diff --git a/boost/fusion/container/list/detail/cpp03/list_fwd.hpp b/boost/fusion/container/list/detail/cpp03/list_fwd.hpp new file mode 100644 index 0000000000..cedc700343 --- /dev/null +++ b/boost/fusion/container/list/detail/cpp03/list_fwd.hpp @@ -0,0 +1,51 @@ +/*============================================================================= + 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) +==============================================================================*/ +#if !defined(FUSION_LIST_FORWARD_07172005_0224) +#define FUSION_LIST_FORWARD_07172005_0224 + +#include <boost/fusion/support/config.hpp> +#include <boost/fusion/container/list/detail/cpp03/limits.hpp> +#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp> + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp> +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list" FUSION_MAX_LIST_SIZE_STR "_fwd.hpp") +#endif + +/*============================================================================= + 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! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion +{ + struct void_; + + template < + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( + FUSION_MAX_LIST_SIZE, typename T, void_) + > + struct list; +}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#endif diff --git a/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp b/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp new file mode 100644 index 0000000000..989e91abe3 --- /dev/null +++ b/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp @@ -0,0 +1,76 @@ +/*============================================================================= + 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) +==============================================================================*/ +#if !defined(FUSION_LIST_TO_CONS_07172005_1041) +#define FUSION_LIST_TO_CONS_07172005_1041 + +#include <boost/fusion/support/config.hpp> +#include <boost/fusion/container/list/cons.hpp> +#include <boost/fusion/container/list/detail/cpp03/limits.hpp> +#include <boost/preprocessor/repetition/enum.hpp> +#include <boost/preprocessor/repetition/enum_params.hpp> +#include <boost/preprocessor/repetition/enum_shifted_params.hpp> +#include <boost/preprocessor/arithmetic/dec.hpp> + +#define FUSION_VOID(z, n, _) void_ + +namespace boost { namespace fusion +{ + struct nil_; + struct void_; +}} + +#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp> +#else +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list_to_cons" FUSION_MAX_LIST_SIZE_STR ".hpp") +#endif + +/*============================================================================= + 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! +==============================================================================*/ + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(preserve: 1) +#endif + +namespace boost { namespace fusion { namespace detail +{ + template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)> + struct list_to_cons + { + typedef T0 head_type; + typedef list_to_cons< + BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_LIST_SIZE, T), void_> + tail_list_to_cons; + typedef typename tail_list_to_cons::type tail_type; + + typedef cons<head_type, tail_type> type; + + #include <boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp> + }; + + template <> + struct list_to_cons<BOOST_PP_ENUM(FUSION_MAX_LIST_SIZE, FUSION_VOID, _)> + { + typedef nil_ type; + }; +}}} + +#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) +#pragma wave option(output: null) +#endif + +#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES + +#undef FUSION_VOID +#endif diff --git a/boost/fusion/container/list/detail/list_to_cons_call.hpp b/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp index fbae58009e..e49db4a840 100644 --- a/boost/fusion/container/list/detail/list_to_cons_call.hpp +++ b/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp @@ -13,7 +13,7 @@ #include <boost/preprocessor/repetition/enum_binary_params.hpp> #define BOOST_PP_FILENAME_1 \ - <boost/fusion/container/list/detail/list_to_cons_call.hpp> + <boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp> #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE) #include BOOST_PP_ITERATE() diff --git a/boost/fusion/container/list/detail/preprocessed/list.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp index 315ffcf7ee..7af66f4964 100644 --- a/boost/fusion/container/list/detail/preprocessed/list.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp @@ -8,15 +8,15 @@ ==============================================================================*/ #if FUSION_MAX_LIST_SIZE <= 10 -#include <boost/fusion/container/list/detail/preprocessed/list10.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp> #elif FUSION_MAX_LIST_SIZE <= 20 -#include <boost/fusion/container/list/detail/preprocessed/list20.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp> #elif FUSION_MAX_LIST_SIZE <= 30 -#include <boost/fusion/container/list/detail/preprocessed/list30.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp> #elif FUSION_MAX_LIST_SIZE <= 40 -#include <boost/fusion/container/list/detail/preprocessed/list40.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp> #elif FUSION_MAX_LIST_SIZE <= 50 -#include <boost/fusion/container/list/detail/preprocessed/list50.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp> #else #error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers" #endif diff --git a/boost/fusion/container/list/detail/preprocessed/list10.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp index 9a289365cd..47db8f588c 100644 --- a/boost/fusion/container/list/detail/preprocessed/list10.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp @@ -18,8 +18,8 @@ namespace boost { namespace fusion typedef detail::list_to_cons<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> list_to_cons; - public: typedef typename list_to_cons::type inherited_type; + public: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED list() : inherited_type() {} @@ -28,7 +28,7 @@ namespace boost { namespace fusion list(list<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs) : inherited_type(rhs) {} template <typename Sequence> - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_FUSION_GPU_ENABLED list(Sequence const& rhs , typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0) : inherited_type(rhs) {} diff --git a/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp index f513a99194..f513a99194 100644 --- a/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list20.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp index a201cb44de..8eb7d2d2df 100644 --- a/boost/fusion/container/list/detail/preprocessed/list20.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp @@ -18,8 +18,8 @@ namespace boost { namespace fusion typedef detail::list_to_cons<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> list_to_cons; - public: typedef typename list_to_cons::type inherited_type; + public: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED list() : inherited_type() {} @@ -28,7 +28,7 @@ namespace boost { namespace fusion list(list<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs) : inherited_type(rhs) {} template <typename Sequence> - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_FUSION_GPU_ENABLED list(Sequence const& rhs , typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0) : inherited_type(rhs) {} diff --git a/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp index 2eedc8b293..2eedc8b293 100644 --- a/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list30.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp index ef9e65fc6a..fb24e8d47b 100644 --- a/boost/fusion/container/list/detail/preprocessed/list30.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp @@ -18,8 +18,8 @@ namespace boost { namespace fusion typedef detail::list_to_cons<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> list_to_cons; - public: typedef typename list_to_cons::type inherited_type; + public: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED list() : inherited_type() {} @@ -28,7 +28,7 @@ namespace boost { namespace fusion list(list<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> const& rhs) : inherited_type(rhs) {} template <typename Sequence> - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_FUSION_GPU_ENABLED list(Sequence const& rhs , typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0) : inherited_type(rhs) {} diff --git a/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp index 32bfc606f7..32bfc606f7 100644 --- a/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list40.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp index 570b2ccdda..49437dee5e 100644 --- a/boost/fusion/container/list/detail/preprocessed/list40.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp @@ -18,8 +18,8 @@ namespace boost { namespace fusion typedef detail::list_to_cons<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> list_to_cons; - public: typedef typename list_to_cons::type inherited_type; + public: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED list() : inherited_type() {} @@ -28,7 +28,7 @@ namespace boost { namespace fusion list(list<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> const& rhs) : inherited_type(rhs) {} template <typename Sequence> - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_FUSION_GPU_ENABLED list(Sequence const& rhs , typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0) : inherited_type(rhs) {} diff --git a/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp index 5d0da6df4b..5d0da6df4b 100644 --- a/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list50.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp index d237cdf998..3ebbf19586 100644 --- a/boost/fusion/container/list/detail/preprocessed/list50.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp @@ -18,8 +18,8 @@ namespace boost { namespace fusion typedef detail::list_to_cons<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> list_to_cons; - public: typedef typename list_to_cons::type inherited_type; + public: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED list() : inherited_type() {} @@ -28,7 +28,7 @@ namespace boost { namespace fusion list(list<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> const& rhs) : inherited_type(rhs) {} template <typename Sequence> - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + BOOST_FUSION_GPU_ENABLED list(Sequence const& rhs , typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0) : inherited_type(rhs) {} diff --git a/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp index 2b3ae66cb6..2b3ae66cb6 100644 --- a/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp index b9be34752f..8a4037da48 100644 --- a/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp @@ -8,15 +8,15 @@ ==============================================================================*/ #if FUSION_MAX_LIST_SIZE <= 10 -#include <boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp> #elif FUSION_MAX_LIST_SIZE <= 20 -#include <boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp> #elif FUSION_MAX_LIST_SIZE <= 30 -#include <boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp> #elif FUSION_MAX_LIST_SIZE <= 40 -#include <boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp> #elif FUSION_MAX_LIST_SIZE <= 50 -#include <boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp> #else #error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers" #endif diff --git a/boost/fusion/container/list/detail/preprocessed/list_to_cons.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp index 0326bef1e5..d9ee9bb245 100644 --- a/boost/fusion/container/list/detail/preprocessed/list_to_cons.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp @@ -8,15 +8,15 @@ ==============================================================================*/ #if FUSION_MAX_LIST_SIZE <= 10 -#include <boost/fusion/container/list/detail/preprocessed/list_to_cons10.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp> #elif FUSION_MAX_LIST_SIZE <= 20 -#include <boost/fusion/container/list/detail/preprocessed/list_to_cons20.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp> #elif FUSION_MAX_LIST_SIZE <= 30 -#include <boost/fusion/container/list/detail/preprocessed/list_to_cons30.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp> #elif FUSION_MAX_LIST_SIZE <= 40 -#include <boost/fusion/container/list/detail/preprocessed/list_to_cons40.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp> #elif FUSION_MAX_LIST_SIZE <= 50 -#include <boost/fusion/container/list/detail/preprocessed/list_to_cons50.hpp> +#include <boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp> #else #error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers" #endif diff --git a/boost/fusion/container/list/detail/preprocessed/list_to_cons10.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp index a98a8cc55f..a98a8cc55f 100644 --- a/boost/fusion/container/list/detail/preprocessed/list_to_cons10.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list_to_cons20.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp index 3adce01d8d..3adce01d8d 100644 --- a/boost/fusion/container/list/detail/preprocessed/list_to_cons20.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list_to_cons30.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp index 7a834a7064..7a834a7064 100644 --- a/boost/fusion/container/list/detail/preprocessed/list_to_cons30.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list_to_cons40.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp index 731782dbfa..731782dbfa 100644 --- a/boost/fusion/container/list/detail/preprocessed/list_to_cons40.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp diff --git a/boost/fusion/container/list/detail/preprocessed/list_to_cons50.hpp b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp index e25371b5ae..e25371b5ae 100644 --- a/boost/fusion/container/list/detail/preprocessed/list_to_cons50.hpp +++ b/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp diff --git a/boost/fusion/container/list/detail/list_to_cons.hpp b/boost/fusion/container/list/detail/list_to_cons.hpp index bc8718631c..1ce1cfbafb 100644 --- a/boost/fusion/container/list/detail/list_to_cons.hpp +++ b/boost/fusion/container/list/detail/list_to_cons.hpp @@ -1,76 +1,61 @@ /*============================================================================= - Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2014-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) ==============================================================================*/ -#if !defined(FUSION_LIST_TO_CONS_07172005_1041) -#define FUSION_LIST_TO_CONS_07172005_1041 +#ifndef FUSION_LIST_MAIN_10262014_0447 +#define FUSION_LIST_MAIN_10262014_0447 +#include <boost/config.hpp> #include <boost/fusion/support/config.hpp> -#include <boost/fusion/container/list/cons.hpp> -#include <boost/fusion/container/list/limits.hpp> -#include <boost/preprocessor/repetition/enum.hpp> -#include <boost/preprocessor/repetition/enum_params.hpp> -#include <boost/preprocessor/repetition/enum_shifted_params.hpp> -#include <boost/preprocessor/arithmetic/dec.hpp> - -#define FUSION_VOID(z, n, _) void_ - -namespace boost { namespace fusion -{ - struct nil_; - struct void_; -}} +#include <boost/fusion/container/list/list_fwd.hpp> -#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) -#include <boost/fusion/container/list/detail/preprocessed/list_to_cons.hpp> +/////////////////////////////////////////////////////////////////////////////// +// Without variadics, we will use the PP version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# include <boost/fusion/container/list/detail/cpp03/list_to_cons.hpp> #else -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list_to_cons" FUSION_MAX_LIST_SIZE_STR ".hpp") -#endif -/*============================================================================= - Copyright (c) 2001-2011 Joel de Guzman +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +#include <boost/fusion/container/list/cons.hpp> +#include <boost/fusion/support/detail/access.hpp> - 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) +namespace boost { namespace fusion { namespace detail +{ + template <typename ...T> + struct list_to_cons; - This is an auto-generated file. Do not edit! -==============================================================================*/ + template <> + struct list_to_cons<> + { + typedef nil_ type; -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(preserve: 1) -#endif + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type call() { return type(); } + }; -namespace boost { namespace fusion { namespace detail -{ - template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)> - struct list_to_cons + template <typename Head, typename ...Tail> + struct list_to_cons<Head, Tail...> { - typedef T0 head_type; - typedef list_to_cons< - BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_LIST_SIZE, T), void_> - tail_list_to_cons; + typedef Head head_type; + typedef list_to_cons<Tail...> tail_list_to_cons; typedef typename tail_list_to_cons::type tail_type; typedef cons<head_type, tail_type> type; - #include <boost/fusion/container/list/detail/list_to_cons_call.hpp> - }; - - template <> - struct list_to_cons<BOOST_PP_ENUM(FUSION_MAX_LIST_SIZE, FUSION_VOID, _)> - { - typedef nil_ type; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + static type + call(typename detail::call_param<Head>::type _h, + typename detail::call_param<Tail>::type ..._t) + { + return type(_h, tail_list_to_cons::call(_t...)); + } }; }}} -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(output: null) #endif - -#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES - -#undef FUSION_VOID #endif diff --git a/boost/fusion/container/list/list.hpp b/boost/fusion/container/list/list.hpp index 5b584131cc..865a6d7def 100644 --- a/boost/fusion/container/list/list.hpp +++ b/boost/fusion/container/list/list.hpp @@ -1,103 +1,127 @@ /*============================================================================= - Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2014-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) ==============================================================================*/ -#if !defined(FUSION_LIST_07172005_1153) -#define FUSION_LIST_07172005_1153 +#ifndef FUSION_LIST_10262014_0537 +#define FUSION_LIST_10262014_0537 #include <boost/fusion/support/config.hpp> #include <boost/fusion/container/list/list_fwd.hpp> -#include <boost/fusion/container/list/detail/list_to_cons.hpp> -#include <boost/fusion/support/is_sequence.hpp> -#include <boost/core/enable_if.hpp> -#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) -#include <boost/fusion/container/list/detail/preprocessed/list.hpp> +/////////////////////////////////////////////////////////////////////////////// +// Without variadics, we will use the PP version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# include <boost/fusion/container/list/detail/cpp03/list.hpp> #else -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_SIZE_STR ".hpp") -#endif - -/*============================================================================= - 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! -==============================================================================*/ - -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(preserve: 1) -#endif +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// +#include <utility> +#include <boost/fusion/container/list/detail/list_to_cons.hpp> namespace boost { namespace fusion { struct nil_; - struct void_; - template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)> - struct list - : detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>::type + template <> + struct list<> + : detail::list_to_cons<>::type { private: - typedef - detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)> - list_to_cons; + typedef detail::list_to_cons<> list_to_cons; + typedef list_to_cons::type inherited_type; public: - typedef typename list_to_cons::type inherited_type; - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED list() : inherited_type() {} - template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)> - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - list(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs) +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template <typename Sequence> + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs) : inherited_type(rhs) {} template <typename Sequence> + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(Sequence const& rhs) + { + inherited_type::operator=(rhs); + return *this; + } +#else + template <typename Sequence> + BOOST_FUSION_GPU_ENABLED + list(Sequence&& rhs) + : inherited_type(std::forward<Sequence>(rhs)) {} + + template <typename Sequence> + BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED + list& + operator=(Sequence&& rhs) + { + inherited_type::operator=(std::forward<Sequence>(rhs)); + return *this; + } +#endif + }; + + template <typename ...T> + struct list + : detail::list_to_cons<T...>::type + { + private: + typedef detail::list_to_cons<T...> list_to_cons; + typedef typename list_to_cons::type inherited_type; + + public: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - list(Sequence const& rhs - , typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0) + list() + : inherited_type() {} + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template <typename Sequence> + BOOST_FUSION_GPU_ENABLED + list(Sequence const& rhs) : inherited_type(rhs) {} +#else + template <typename Sequence> + BOOST_FUSION_GPU_ENABLED + list(Sequence&& rhs) + : inherited_type(std::forward<Sequence>(rhs)) {} +#endif - // Expand a couple of forwarding constructors for arguments - // of type (T0), (T0, T1), (T0, T1, T2) etc. Exanple: - // - // list( - // typename detail::call_param<T0>::type arg0 - // , typename detail::call_param<T1>::type arg1) - // : inherited_type(list_to_cons::call(arg0, arg1)) {} - #include <boost/fusion/container/list/detail/list_forward_ctor.hpp> + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit + list(typename detail::call_param<T>::type ...args) + : inherited_type(list_to_cons::call(args...)) {} - template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)> +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template <typename Sequence> BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED list& - operator=(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs) + operator=(Sequence const& rhs) { inherited_type::operator=(rhs); return *this; } - +#else template <typename Sequence> BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED - typename boost::enable_if<traits::is_sequence<Sequence>, list&>::type - operator=(Sequence const& rhs) + list& + operator=(Sequence&& rhs) { - inherited_type::operator=(rhs); + inherited_type::operator=(std::forward<Sequence>(rhs)); return *this; } +#endif }; }} -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(output: null) #endif - -#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES - #endif diff --git a/boost/fusion/container/list/list_fwd.hpp b/boost/fusion/container/list/list_fwd.hpp index d827d283e8..c5f2619267 100644 --- a/boost/fusion/container/list/list_fwd.hpp +++ b/boost/fusion/container/list/list_fwd.hpp @@ -1,51 +1,43 @@ /*============================================================================= - Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2014 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) ==============================================================================*/ -#if !defined(FUSION_LIST_FORWARD_07172005_0224) -#define FUSION_LIST_FORWARD_07172005_0224 +#ifndef FUSION_LIST_FORWARD_10262014_0528 +#define FUSION_LIST_FORWARD_10262014_0528 #include <boost/fusion/support/config.hpp> -#include <boost/fusion/container/list/limits.hpp> -#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp> +#include <boost/config.hpp> -#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) -#include <boost/fusion/container/list/detail/preprocessed/list_fwd.hpp> +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \ + || (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) +# if defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# undef BOOST_FUSION_HAS_VARIADIC_LIST +# endif #else -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_SIZE_STR "_fwd.hpp") +# if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# define BOOST_FUSION_HAS_VARIADIC_LIST +# endif #endif -/*============================================================================= - 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! -==============================================================================*/ - -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(preserve: 1) -#endif +/////////////////////////////////////////////////////////////////////////////// +// With no variadics, we will use the C++03 version +/////////////////////////////////////////////////////////////////////////////// +#if !defined(BOOST_FUSION_HAS_VARIADIC_LIST) +# include <boost/fusion/container/list/detail/cpp03/list_fwd.hpp> +#else +/////////////////////////////////////////////////////////////////////////////// +// C++11 interface +/////////////////////////////////////////////////////////////////////////////// namespace boost { namespace fusion { struct void_; - template < - BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( - FUSION_MAX_LIST_SIZE, typename T, void_) - > + template <typename ...T> struct list; }} -#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) -#pragma wave option(output: null) #endif - -#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES - #endif |