forked from boostorg/fusion
More constexpr and noexcept support.
Note 1: Forwarding functions are specified as a C++14 constexpr since std::forward is not a constexpr within C++11. Note 2: Though I'm not sure why it doesn't compile, some declarations are specified as a C++14 constexpr or non-constexpr. Note 3: Boost.Tuple adaptation and TR1-based tuple implementations are not constexpr.
This commit is contained in:
@ -21,7 +21,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
struct replacer_helper<false>
|
||||
{
|
||||
template <typename U, typename T>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
static U&
|
||||
call(U& x, T const&, T const&)
|
||||
{
|
||||
@ -33,7 +33,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
struct replacer_helper<true>
|
||||
{
|
||||
template <typename U, typename T>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
static U
|
||||
call(U& x, T const& old_value, T const& new_value)
|
||||
{
|
||||
@ -44,7 +44,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
template <typename T>
|
||||
struct replacer
|
||||
{
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
replacer(T const& in_old_value, T const& in_new_value)
|
||||
: old_value(in_old_value), new_value(in_new_value) {}
|
||||
|
||||
@ -59,9 +59,9 @@ namespace boost { namespace fusion { namespace detail
|
||||
mpl::if_<is_convertible<T, value>, value, value const&>::type
|
||||
type;
|
||||
};
|
||||
|
||||
|
||||
template <typename U>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
typename result<replacer(U)>::type
|
||||
operator()(U const& x) const
|
||||
{
|
||||
|
@ -21,7 +21,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
struct replacer_if_helper<false>
|
||||
{
|
||||
template <typename U, typename F, typename T>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
static U&
|
||||
call(U& x, F&, T const&)
|
||||
{
|
||||
@ -33,7 +33,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
struct replacer_if_helper<true>
|
||||
{
|
||||
template <typename U, typename F, typename T>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
static U
|
||||
call(U& x, F& f, T const& new_value)
|
||||
{
|
||||
@ -44,7 +44,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
template <typename F, typename T>
|
||||
struct replacer_if
|
||||
{
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
replacer_if(F in_f, T const& in_new_value)
|
||||
: f(in_f), new_value(in_new_value) {}
|
||||
|
||||
@ -59,9 +59,9 @@ namespace boost { namespace fusion { namespace detail
|
||||
mpl::if_<is_convertible<T, value>, value, value const&>::type
|
||||
type;
|
||||
};
|
||||
|
||||
|
||||
template <typename U>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
typename result<replacer_if(U)>::type
|
||||
operator()(U const& x) const
|
||||
{
|
||||
|
Reference in New Issue
Block a user