mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
add SPROUT_FORWARD - workaround for ICC
This commit is contained in:
parent
7831105add
commit
274122efb2
202 changed files with 750 additions and 741 deletions
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(&std::declval<T>()))
|
||||
{
|
||||
return &sprout::forward<T>(x);
|
||||
return &SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() = std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) = sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) = SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -107,7 +107,7 @@ namespace sprout {
|
|||
) const volatile
|
||||
-> decltype(arg(std::declval<Args>()...))
|
||||
{
|
||||
return arg(sprout::forward<Args>(sprout::tuples::get<Indexes>(tuple))...);
|
||||
return arg(SPROUT_FORWARD(Args, sprout::tuples::get<Indexes>(tuple))...);
|
||||
}
|
||||
public:
|
||||
template<typename CVArg, typename... Args>
|
||||
|
@ -136,9 +136,8 @@ namespace sprout {
|
|||
template<typename Tuple>
|
||||
typename result<mu (Arg, Tuple)>::type
|
||||
SPROUT_CONSTEXPR operator()(Arg /*const volatile&*/, Tuple& tuple) const volatile {
|
||||
return sprout::forward<typename result<mu (Arg, Tuple)>::type>(
|
||||
sprout::tuples::get<(sprout::is_placeholder<Arg>::value - 1)>(tuple)
|
||||
);
|
||||
typedef typename result<mu (Arg, Tuple)>::type type;
|
||||
return SPROUT_FORWARD(type, sprout::tuples::get<(sprout::is_placeholder<Arg>::value - 1)>(tuple));
|
||||
}
|
||||
};
|
||||
template<typename Arg>
|
||||
|
@ -154,7 +153,7 @@ namespace sprout {
|
|||
public:
|
||||
template<typename CVArg, typename Tuple>
|
||||
SPROUT_CONSTEXPR CVArg&& operator()(CVArg&& arg, Tuple&) const volatile {
|
||||
return sprout::forward<CVArg>(arg);
|
||||
return SPROUT_FORWARD(CVArg, arg);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -395,12 +394,12 @@ namespace sprout {
|
|||
-> decltype(
|
||||
sprout::detail::get_bound_helper::get_bound<
|
||||
sprout::detail::bound_position<I, typename std::remove_reference<Bounds>::type, ArgSize>::value
|
||||
>(sprout::forward<Bounds>(bound_args))
|
||||
>(SPROUT_FORWARD(Bounds, bound_args))
|
||||
)
|
||||
{
|
||||
return sprout::detail::get_bound_helper::get_bound<
|
||||
sprout::detail::bound_position<I, typename std::remove_reference<Bounds>::type, ArgSize>::value
|
||||
>(sprout::forward<Bounds>(bound_args));
|
||||
>(SPROUT_FORWARD(Bounds, bound_args));
|
||||
}
|
||||
} // namespace detail
|
||||
|
||||
|
@ -490,7 +489,7 @@ namespace sprout {
|
|||
template<typename... Args>
|
||||
explicit SPROUT_CONSTEXPR binder_impl(Functor const& f, Args&&... args)
|
||||
: f_(f)
|
||||
, bound_args_(sprout::forward<Args>(args)...)
|
||||
, bound_args_(SPROUT_FORWARD(Args, args)...)
|
||||
{}
|
||||
binder_impl(binder_impl const&) = default;
|
||||
};
|
||||
|
@ -510,7 +509,7 @@ namespace sprout {
|
|||
public:
|
||||
template<typename... Args>
|
||||
explicit SPROUT_CONSTEXPR binder(Functor const& f, Args&&... args)
|
||||
: impl_type(f, sprout::forward<Args>(args)...)
|
||||
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||
{}
|
||||
binder(binder const&) = default;
|
||||
template<
|
||||
|
@ -521,7 +520,7 @@ namespace sprout {
|
|||
>
|
||||
Result operator()(Args&&... args) {
|
||||
return impl_type::template call<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -533,7 +532,7 @@ namespace sprout {
|
|||
>
|
||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const {
|
||||
return impl_type::template call_c<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -545,7 +544,7 @@ namespace sprout {
|
|||
>
|
||||
Result operator()(Args&&... args) volatile {
|
||||
return impl_type::template call_v<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -557,7 +556,7 @@ namespace sprout {
|
|||
>
|
||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const volatile {
|
||||
return impl_type::template call_cv<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -577,7 +576,7 @@ namespace sprout {
|
|||
public:
|
||||
template<typename... Args>
|
||||
explicit SPROUT_CONSTEXPR cbinder(Functor const& f, Args&&... args)
|
||||
: impl_type(f, sprout::forward<Args>(args)...)
|
||||
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||
{}
|
||||
cbinder(cbinder const&) = default;
|
||||
template<
|
||||
|
@ -588,7 +587,7 @@ namespace sprout {
|
|||
>
|
||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const {
|
||||
return impl_type::template call_c<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -600,7 +599,7 @@ namespace sprout {
|
|||
>
|
||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const volatile {
|
||||
return impl_type::template call_cv<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -704,7 +703,7 @@ namespace sprout {
|
|||
template<typename... Args>
|
||||
explicit SPROUT_CONSTEXPR res_binder_impl(Functor const& f, Args&&... args)
|
||||
: f_(f)
|
||||
, bound_args_(sprout::forward<Args>(args)...)
|
||||
, bound_args_(SPROUT_FORWARD(Args, args)...)
|
||||
{}
|
||||
res_binder_impl(res_binder_impl const&) = default;
|
||||
};
|
||||
|
@ -726,34 +725,34 @@ namespace sprout {
|
|||
public:
|
||||
template<typename... Args>
|
||||
explicit res_binder(Functor const& f, Args&&... args)
|
||||
: impl_type(f, sprout::forward<Args>(args)...)
|
||||
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||
{}
|
||||
res_binder(res_binder const&) = default;
|
||||
template<typename... Args>
|
||||
result_type operator()(Args&&... args) {
|
||||
return impl_type::template call<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
template<typename... Args>
|
||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const {
|
||||
return impl_type::template call<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
template<typename... Args>
|
||||
result_type operator()(Args&&... args) volatile {
|
||||
return impl_type::template call<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
template<typename... Args>
|
||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const volatile {
|
||||
return impl_type::template call<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -775,20 +774,20 @@ namespace sprout {
|
|||
public:
|
||||
template<typename... Args>
|
||||
explicit SPROUT_CONSTEXPR res_cbinder(Functor const& f, Args&&... args)
|
||||
: impl_type(f, sprout::forward<Args>(args)...)
|
||||
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||
{}
|
||||
res_cbinder(res_cbinder const&) = default;
|
||||
template<typename... Args>
|
||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const {
|
||||
return impl_type::template call<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
template<typename... Args>
|
||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const volatile {
|
||||
return impl_type::template call<Result>(
|
||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
||||
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||
);
|
||||
}
|
||||
|
@ -999,7 +998,7 @@ namespace sprout {
|
|||
typedef sprout::detail::bind_helper<false, F, BoundArgs...> helper_type;
|
||||
typedef typename helper_type::maybe_type maybe_type;
|
||||
typedef typename helper_type::type result_type;
|
||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
||||
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||
}
|
||||
template<typename R, typename F, typename... BoundArgs>
|
||||
inline SPROUT_CONSTEXPR typename sprout::res_bind_result<R, F, BoundArgs...>::type
|
||||
|
@ -1007,7 +1006,7 @@ namespace sprout {
|
|||
typedef sprout::detail::res_bind_helper<false, R, F, BoundArgs...> helper_type;
|
||||
typedef typename helper_type::maybe_type maybe_type;
|
||||
typedef typename helper_type::type result_type;
|
||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
||||
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -1019,7 +1018,7 @@ namespace sprout {
|
|||
typedef sprout::detail::bind_helper<true, F, BoundArgs...> helper_type;
|
||||
typedef typename helper_type::maybe_type maybe_type;
|
||||
typedef typename helper_type::type result_type;
|
||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
||||
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||
}
|
||||
template<typename R, typename F, typename... BoundArgs>
|
||||
inline SPROUT_CONSTEXPR typename sprout::res_cbind_result<R, F, BoundArgs...>::type
|
||||
|
@ -1027,7 +1026,7 @@ namespace sprout {
|
|||
typedef sprout::detail::res_bind_helper<true, R, F, BoundArgs...> helper_type;
|
||||
typedef typename helper_type::maybe_type maybe_type;
|
||||
typedef typename helper_type::type result_type;
|
||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
||||
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||
}
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() & std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) & sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) & SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() &= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) &= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) &= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(~std::declval<T>()))
|
||||
{
|
||||
return ~sprout::forward<T>(x);
|
||||
return ~SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() | std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) | sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) | SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() |= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) |= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) |= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^ std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) ^ sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) ^ SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) ^= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) ^= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(F&& f, As&&... as)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<F>()(std::declval<As>()...)))
|
||||
{
|
||||
return sprout::forward<F>(f)(sprout::forward<As>(as)...);
|
||||
return SPROUT_FORWARD(F, f)(SPROUT_FORWARD(As, as)...);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((std::declval<T>(), std::declval<U>())))
|
||||
{
|
||||
return sprout::forward<T>(x), sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x), SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y, V&& z)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ? std::declval<U>() : std::declval<V>()))
|
||||
{
|
||||
return sprout::forward<T>(x) ? sprout::forward<U>(y) : sprout::forward<V>(z);
|
||||
return SPROUT_FORWARD(T, x) ? SPROUT_FORWARD(U, y) : SPROUT_FORWARD(V, z);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*std::declval<T>()))
|
||||
{
|
||||
return *sprout::forward<T>(x);
|
||||
return *SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() / std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) / sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) / SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() /= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) /= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) /= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() == std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) == sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) == SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace sprout {
|
|||
template<typename T, typename U>
|
||||
SPROUT_CONSTEXPR decltype(!std::declval<Compare const&>()(std::declval<T>(), std::declval<U>()) && !std::declval<Compare const&>()(std::declval<U>(), std::declval<T>()))
|
||||
operator()(T&& x, U&& y) const {
|
||||
return !fn(sprout::forward<T>(x), sprout::forward<U>(y)) && !fn(sprout::forward<U>(y), sprout::forward<T>(x));
|
||||
return !fn(SPROUT_FORWARD(T, x), SPROUT_FORWARD(U, y)) && !fn(SPROUT_FORWARD(U, y), SPROUT_FORWARD(T, x));
|
||||
}
|
||||
};
|
||||
} // namespace detail
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() > std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) > sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) > SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() >= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) >= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) >= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -48,9 +48,9 @@ namespace sprout {
|
|||
template<typename T>
|
||||
SPROUT_CONSTEXPR std::size_t
|
||||
operator()(T&& v)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::to_hash(sprout::forward<T>(v))))
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::to_hash(SPROUT_FORWARD(T, v))))
|
||||
{
|
||||
return sprout::to_hash(sprout::forward<T>(v));
|
||||
return sprout::to_hash(SPROUT_FORWARD(T, v));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace sprout {
|
|||
to_hash(T&& v) {
|
||||
using sprout::hash_value;
|
||||
using sprout_adl::hash_value;
|
||||
return hash_value(sprout::forward<T>(v));
|
||||
return hash_value(SPROUT_FORWARD(T, v));
|
||||
}
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() < std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) < sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) < SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() <= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) <= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) <= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() && std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) && sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) && SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(!std::declval<T>()))
|
||||
{
|
||||
return !sprout::forward<T>(x);
|
||||
return !SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() || std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) || sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) || SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -59,25 +59,25 @@ namespace sprout {
|
|||
private:
|
||||
template<typename T>
|
||||
Res call(T& object, Class const volatile*, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
Res call(T& ptr, void const volatile*, Args... args) const {
|
||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
||||
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
public:
|
||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...))
|
||||
: pmf_(pmf)
|
||||
{}
|
||||
Res operator()(Class& object, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
Res operator()(Class* object, Args... args) const {
|
||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
Res operator()(T& object, Args... args) const {
|
||||
return call(object, &object, sprout::forward<Args>(args)...);
|
||||
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
};
|
||||
template<typename Res, typename Class, typename... Args>
|
||||
|
@ -93,25 +93,25 @@ namespace sprout {
|
|||
private:
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR Res call(T const& object, Class const volatile*, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR Res call(T const& ptr, void const volatile*, Args... args) const {
|
||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
||||
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
public:
|
||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) const)
|
||||
: pmf_(pmf)
|
||||
{}
|
||||
SPROUT_CONSTEXPR Res operator()(Class const& object, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
SPROUT_CONSTEXPR Res operator()(Class const* object, Args... args) const {
|
||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR Res operator()(T const& object, Args... args) const {
|
||||
return call(object, &object, sprout::forward<Args>(args)...);
|
||||
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
};
|
||||
template<typename Res, typename Class, typename... Args>
|
||||
|
@ -127,25 +127,25 @@ namespace sprout {
|
|||
private:
|
||||
template<typename T>
|
||||
Res call(T& object, Class const volatile*, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
Res call(T& ptr, void const volatile*, Args... args) const {
|
||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
||||
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
public:
|
||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) volatile)
|
||||
: pmf_(pmf)
|
||||
{}
|
||||
Res operator()(Class volatile& object, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
Res operator()(Class volatile* object, Args... args) const {
|
||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
Res operator()(T& object, Args... args) const {
|
||||
return call(object, &object, sprout::forward<Args>(args)...);
|
||||
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
};
|
||||
template<typename Res, typename Class, typename... Args>
|
||||
|
@ -161,25 +161,25 @@ namespace sprout {
|
|||
private:
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR Res call(T const& object, Class const volatile*, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR Res call(T const& ptr, void const volatile*, Args... args) const {
|
||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
||||
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
public:
|
||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) const volatile)
|
||||
: pmf_(pmf)
|
||||
{}
|
||||
SPROUT_CONSTEXPR Res operator()(Class const volatile& object, Args... args) const {
|
||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
SPROUT_CONSTEXPR Res operator()(Class const volatile* object, Args... args) const {
|
||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
||||
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
template<typename T>
|
||||
SPROUT_CONSTEXPR Res operator()(T const& object, Args... args) const {
|
||||
return call(object, &object, sprout::forward<Args>(args)...);
|
||||
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()->*std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x)->*sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x)->*SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>().*std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x).*sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x).*SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() - std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) - sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) - SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() -= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) -= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) -= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() % std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) % sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) % SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() %= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) %= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) %= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() * std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) * sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) * SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() *= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) *= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) *= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(-std::declval<T>()))
|
||||
{
|
||||
return -sprout::forward<T>(x);
|
||||
return -SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace sprout {
|
|||
template<typename T>
|
||||
SPROUT_CONSTEXPR decltype(!std::declval<Predicate const&>()(std::declval<T>()))
|
||||
operator()(T&& x) const {
|
||||
return !fn(sprout::forward<T>(x));
|
||||
return !fn(SPROUT_FORWARD(T, x));
|
||||
}
|
||||
};
|
||||
} // namespace detail
|
||||
|
|
|
@ -47,7 +47,7 @@ namespace sprout {
|
|||
template<typename T, typename U>
|
||||
SPROUT_CONSTEXPR decltype(!std::declval<Predicate const&>()(std::declval<T>(), std::declval<U>()))
|
||||
operator()(T&& x, U&& y) const {
|
||||
return !fn(sprout::forward<T>(x), sprout::forward<U>(y));
|
||||
return !fn(SPROUT_FORWARD(T, x), SPROUT_FORWARD(U, y));
|
||||
}
|
||||
};
|
||||
} // namespace detail
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() != std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) != sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) != SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() + std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) + sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) + SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() += std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) += sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) += SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -25,21 +25,21 @@ namespace sprout {
|
|||
T value;
|
||||
public:
|
||||
SPROUT_CONSTEXPR binder1st_(Fn&& x, T&& y)
|
||||
: op(sprout::forward<Fn>(x)), value(sprout::forward<T>(y))
|
||||
: op(SPROUT_FORWARD(Fn, x)), value(SPROUT_FORWARD(T, y))
|
||||
{}
|
||||
template<typename Arg>
|
||||
SPROUT_CONSTEXPR decltype(op(value, std::declval<Arg>()))
|
||||
operator()(Arg&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(op(value, std::declval<Arg>())))
|
||||
{
|
||||
return op(value, sprout::forward<Arg>(x));
|
||||
return op(value, SPROUT_FORWARD(Arg, x));
|
||||
}
|
||||
};
|
||||
template<typename Fn, typename T>
|
||||
inline SPROUT_CONSTEXPR sprout::binder1st_<typename std::decay<Fn>::type, typename std::decay<T>::type>
|
||||
bind1st_(Fn&& fn, T&& x) {
|
||||
typedef sprout::binder1st_<typename std::decay<Fn>::type, typename std::decay<T>::type> type;
|
||||
return type(sprout::forward<Fn>(fn), sprout::forward<T>(x));
|
||||
return type(SPROUT_FORWARD(Fn, fn), SPROUT_FORWARD(T, x));
|
||||
}
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -25,21 +25,21 @@ namespace sprout {
|
|||
T value;
|
||||
public:
|
||||
SPROUT_CONSTEXPR binder2nd_(Fn&& x, T&& y)
|
||||
: op(sprout::forward<Fn>(x)), value(sprout::forward<T>(y))
|
||||
: op(SPROUT_FORWARD(Fn, x)), value(SPROUT_FORWARD(T, y))
|
||||
{}
|
||||
template<typename Arg>
|
||||
SPROUT_CONSTEXPR decltype(op(std::declval<Arg>(), value))
|
||||
operator()(Arg&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(op(std::declval<Arg>(), value)))
|
||||
{
|
||||
return op(sprout::forward<Arg>(x), value);
|
||||
return op(SPROUT_FORWARD(Arg, x), value);
|
||||
}
|
||||
};
|
||||
template<typename Fn, typename T>
|
||||
inline SPROUT_CONSTEXPR sprout::binder2nd_<typename std::decay<Fn>::type, typename std::decay<T>::type>
|
||||
bind2nd_(Fn&& fn, T&& x) {
|
||||
typedef sprout::binder2nd_<typename std::decay<Fn>::type, typename std::decay<T>::type> type;
|
||||
return type(sprout::forward<Fn>(fn), sprout::forward<T>(x));
|
||||
return type(SPROUT_FORWARD(Fn, fn), SPROUT_FORWARD(T, x));
|
||||
}
|
||||
} // namespace sprout
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(+std::declval<T>()))
|
||||
{
|
||||
return +sprout::forward<T>(x);
|
||||
return +SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(~std::declval<T>()--))
|
||||
{
|
||||
return sprout::forward<T>(x)--;
|
||||
return SPROUT_FORWARD(T, x)--;
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()++))
|
||||
{
|
||||
return sprout::forward<T>(x)++;
|
||||
return SPROUT_FORWARD(T, x)++;
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(--std::declval<T>()))
|
||||
{
|
||||
return --sprout::forward<T>(x);
|
||||
return --SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(++std::declval<T>()))
|
||||
{
|
||||
return ++sprout::forward<T>(x);
|
||||
return ++SPROUT_FORWARD(T, x);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -173,7 +173,7 @@ namespace sprout {
|
|||
template<typename... Args>
|
||||
SPROUT_CONSTEXPR typename std::result_of<T& (Args&&...)>::type
|
||||
operator()(Args&&... args) const {
|
||||
return (*t_)(sprout::forward<Args>(args)...);
|
||||
return (*t_)(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() << std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) << sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) << SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() <<= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) <<= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) <<= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() << std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) >> sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) >> SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() >>= std::declval<U>()))
|
||||
{
|
||||
return sprout::forward<T>(x) >>= sprout::forward<U>(y);
|
||||
return SPROUT_FORWARD(T, x) >>= SPROUT_FORWARD(U, y);
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
operator()(T&& x, U&& y)
|
||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()[std::declval<U>()]))
|
||||
{
|
||||
return sprout::forward<T>(x)[sprout::forward<U>(y)];
|
||||
return SPROUT_FORWARD(T, x)[SPROUT_FORWARD(U, y)];
|
||||
}
|
||||
};
|
||||
} // namespace sprout
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue