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

View File

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