From 9de32721749b635ff3e04e690da89cf06602c122 Mon Sep 17 00:00:00 2001 From: Kohei Takahashi Date: Tue, 6 Mar 2018 00:40:41 +0900 Subject: [PATCH] Added workaround for GCC 4.4/c++0x Teh call of ctor is ambiguous since gcc 4.4 allows binding rvalue to lvalue reference. --- .../fusion/container/deque/detail/keyed_element.hpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/include/boost/fusion/container/deque/detail/keyed_element.hpp b/include/boost/fusion/container/deque/detail/keyed_element.hpp index 15b68667..3ab88b92 100644 --- a/include/boost/fusion/container/deque/detail/keyed_element.hpp +++ b/include/boost/fusion/container/deque/detail/keyed_element.hpp @@ -13,6 +13,11 @@ #include #include +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && BOOST_WORKAROUND(BOOST_GCC, / 100 == 404) +#include +#include +#endif + namespace boost { namespace fusion { struct fusion_sequence_tag; @@ -114,8 +119,13 @@ namespace boost { namespace fusion { namespace detail {} #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#if BOOST_WORKAROUND(BOOST_GCC, / 100 == 404) + template >::type> +#else + typedef Value Value_; +#endif BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED - keyed_element(Value&& value, Rest&& rest) + keyed_element(Value_&& value, Rest&& rest) : Rest(std::move(rest)) , value_(BOOST_FUSION_FWD_ELEM(Value, value)) {}