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)) {}