diff --git a/include/boost/fusion/container/deque/back_extended_deque.hpp b/include/boost/fusion/container/deque/back_extended_deque.hpp index b1090df6..f11aef83 100644 --- a/include/boost/fusion/container/deque/back_extended_deque.hpp +++ b/include/boost/fusion/container/deque/back_extended_deque.hpp @@ -29,6 +29,18 @@ namespace boost { namespace fusion { back_extended_deque(Deque const& deque, Arg const& val) : base(val, deque) {} + +#if defined(BOOST_NO_RVALUE_REFERENCES) + template + back_extended_deque(Deque const& deque, Arg& val) + : base(val, deque) + {} +#else + template + back_extended_deque(Deque const& deque, Arg&& val) + : base(std::forward(val), deque) + {} +#endif }; }} diff --git a/include/boost/fusion/container/deque/deque.hpp b/include/boost/fusion/container/deque/deque.hpp new file mode 100644 index 00000000..4aef8144 --- /dev/null +++ b/include/boost/fusion/container/deque/deque.hpp @@ -0,0 +1,19 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + 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(BOOST_FUSION_DEQUE_26112006_1649) +#define BOOST_FUSION_DEQUE_26112006_1649 + +#if (defined(BOOST_NO_DECLTYPE) \ + || defined(BOOST_NO_VARIADIC_TEMPLATES) \ + || defined(BOOST_NO_RVALUE_REFERENCES)) +# include +#else +# include +#endif + +#endif diff --git a/include/boost/fusion/container/deque/deque_fwd.hpp b/include/boost/fusion/container/deque/deque_fwd.hpp new file mode 100644 index 00000000..4d32b9fd --- /dev/null +++ b/include/boost/fusion/container/deque/deque_fwd.hpp @@ -0,0 +1,21 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2007 Dan Marsden + + 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_DEQUE_FORWARD_02092007_0749) +#define FUSION_DEQUE_FORWARD_02092007_0749 + +#include + +#if (defined(BOOST_NO_DECLTYPE) \ + || defined(BOOST_NO_VARIADIC_TEMPLATES) \ + || defined(BOOST_NO_RVALUE_REFERENCES)) +# include +#else +# include +#endif + +#endif diff --git a/include/boost/fusion/container/deque/front_extended_deque.hpp b/include/boost/fusion/container/deque/front_extended_deque.hpp index 648e5966..0d672dad 100644 --- a/include/boost/fusion/container/deque/front_extended_deque.hpp +++ b/include/boost/fusion/container/deque/front_extended_deque.hpp @@ -29,6 +29,18 @@ namespace boost { namespace fusion front_extended_deque(Deque const& deque, Arg const& val) : base(val, deque) {} + +#if defined(BOOST_NO_RVALUE_REFERENCES) + template + front_extended_deque(Deque const& deque, Arg& val) + : base(val, deque) + {} +#else + template + front_extended_deque(Deque const& deque, Arg&& val) + : base(std::forward(val), deque) + {} +#endif }; }}