Remove invalid odr-usages of boost::declval.

This commit is contained in:
Louis Dionne
2015-11-07 16:11:06 -05:00
parent 1bc343660b
commit 4d3891ed31
2 changed files with 4 additions and 11 deletions

View File

@ -36,7 +36,6 @@
#include <boost/core/enable_if.hpp> #include <boost/core/enable_if.hpp>
#include <boost/mpl/int.hpp> #include <boost/mpl/int.hpp>
#include <boost/mpl/bool.hpp> #include <boost/mpl/bool.hpp>
#include <boost/type_traits/declval.hpp>
#include <boost/type_traits/is_same.hpp> #include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/is_convertible.hpp> #include <boost/type_traits/is_convertible.hpp>
#include <boost/type_traits/remove_cv.hpp> #include <boost/type_traits/remove_cv.hpp>
@ -272,8 +271,8 @@ namespace boost { namespace fusion
} }
template <std::size_t N, typename U> template <std::size_t N, typename U>
static BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static BOOST_FUSION_GPU_ENABLED
U value_at_impl(store<N, U>*) { return boost::declval<U>(); } U value_at_impl(store<N, U>*);
}; };
template <typename V, typename... T> template <typename V, typename... T>

View File

@ -17,9 +17,6 @@
#include <boost/fusion/algorithm/iteration/fold.hpp> #include <boost/fusion/algorithm/iteration/fold.hpp>
#include <boost/type_traits/remove_reference.hpp> #include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/is_convertible.hpp> #include <boost/type_traits/is_convertible.hpp>
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
#include <boost/type_traits/declval.hpp>
#endif
namespace boost { namespace fusion namespace boost { namespace fusion
{ {
@ -62,12 +59,9 @@ namespace boost { namespace fusion
// never called, but needed for decltype-based result_of (C++0x) // never called, but needed for decltype-based result_of (C++0x)
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
template<typename StrictestSoFar, typename Next> template<typename StrictestSoFar, typename Next>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED BOOST_FUSION_GPU_ENABLED
typename result<strictest_traversal_impl(StrictestSoFar, Next)>::type typename result<strictest_traversal_impl(StrictestSoFar, Next)>::type
operator()(StrictestSoFar&&, Next&&) const operator()(StrictestSoFar&&, Next&&) const;
{
return boost::declval<typename result<strictest_traversal_impl(StrictestSoFar, Next)>::type>();
}
#endif #endif
}; };