fix macros for noexcept

This commit is contained in:
bolero-MURAKAMI 2014-08-14 22:55:49 +09:00
parent 23f24450b0
commit 979af136a1
125 changed files with 324 additions and 287 deletions

View file

@ -91,7 +91,7 @@ namespace sprout {
return fill(value);
}
SPROUT_CXX14_CONSTEXPR void swap(array& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(std::declval<T&>(), std::declval<T&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(std::declval<T&>(), std::declval<T&>()))
{
sprout::swap_ranges(other.begin(), other.end(), begin());
}
@ -226,7 +226,7 @@ namespace sprout {
template<typename T, std::size_t N>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::array<T, N>& lhs, sprout::array<T, N>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -87,7 +87,7 @@ namespace sprout {
return second_;
}
SPROUT_CXX14_CONSTEXPR void swap(compressed_pair_impl& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(first_, other.first_))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(second_, other.second_))
)
@ -138,7 +138,7 @@ namespace sprout {
return second_;
}
SPROUT_CXX14_CONSTEXPR void swap(compressed_pair_impl& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(second_, other.second_)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(second_, other.second_))
{
sprout::swap(second_, other.second_);
}
@ -186,7 +186,7 @@ namespace sprout {
return *this;
}
SPROUT_CXX14_CONSTEXPR void swap(compressed_pair_impl& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(first_, other.first_)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(first_, other.first_))
{
sprout::swap(first_, other.first_);
}
@ -317,7 +317,7 @@ namespace sprout {
return second_;
}
SPROUT_CXX14_CONSTEXPR void swap(compressed_pair_impl& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(first_, other.first_))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(second_, other.second_))
)
@ -450,7 +450,7 @@ namespace sprout {
template<typename T1, typename T2>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::compressed_pair<T1, T2>& lhs, sprout::compressed_pair<T1, T2>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -106,17 +106,26 @@
//
// SPROUT_NOEXCEPT
// SPROUT_NOEXCEPT_OR_NOTHROW
// SPROUT_NOEXCEPT_IF
// SPROUT_NOEXCEPT_EXPR
// SPROUT_NOEXCEPT_EXPR_OR_DEFAULT
// SPROUT_NOEXCEPT_IF_EXPR
//
#ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT
# define SPROUT_NOEXCEPT noexcept
# define SPROUT_NOEXCEPT_EXPR(EXPR) noexcept(EXPR)
# define SPROUT_NOEXCEPT_EXPR_OR_DEFAULT(EXPR, C) noexcept(EXPR)
# define SPROUT_NOEXCEPT_OR_NOTHROW noexcept
# define SPROUT_NOEXCEPT_IF(COND) noexcept((COND))
# define SPROUT_NOEXCEPT_EXPR(EXPR) noexcept((EXPR))
# define SPROUT_NOEXCEPT_EXPR_OR_DEFAULT(EXPR, C) noexcept((EXPR))
# define SPROUT_NOEXCEPT_IF_EXPR(EXPR) noexcept(noexcept((EXPR)))
#else // #ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT
# define SPROUT_NOEXCEPT
# define SPROUT_NOEXCEPT_EXPR(EXPR)
# define SPROUT_NOEXCEPT_OR_NOTHROW throw()
# define SPROUT_NOEXCEPT_IF(COND)
# define SPROUT_NOEXCEPT_EXPR(EXPR) false
# define SPROUT_NOEXCEPT_EXPR_OR_DEFAULT(EXPR, C) C
# define SPROUT_NOEXCEPT_IF_EXPR(EXPR)
#endif // #ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT
//

View file

@ -53,7 +53,7 @@ namespace sprout {
container_holder(container_holder const&) = default;
SPROUT_CXX14_CONSTEXPR void swap(container_holder& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(other.container, container)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(other.container, container))
{
sprout::swap(other.container, container);
}
@ -127,7 +127,7 @@ namespace sprout {
template<typename Container>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::container_holder<Container>& lhs, sprout::container_holder<Container>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -431,7 +431,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(sprout::tolower(std::declval<T>()) == sprout::tolower(std::declval<U>()))
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tolower(std::declval<T>()) == sprout::tolower(std::declval<U>())))
const SPROUT_NOEXCEPT_IF_EXPR(sprout::tolower(std::declval<T>()) == sprout::tolower(std::declval<U>()))
{
return sprout::tolower(SPROUT_FORWARD(T, x)) == sprout::tolower(SPROUT_FORWARD(U, y));
}
@ -457,7 +457,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(sprout::tolower(std::declval<T>()) != sprout::tolower(std::declval<U>()))
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tolower(std::declval<T>()) != sprout::tolower(std::declval<U>())))
const SPROUT_NOEXCEPT_IF_EXPR(sprout::tolower(std::declval<T>()) != sprout::tolower(std::declval<U>()))
{
return sprout::tolower(SPROUT_FORWARD(T, x)) != sprout::tolower(SPROUT_FORWARD(U, y));
}

View file

@ -44,7 +44,7 @@ namespace sprout {
template<std::size_t I, typename T>
inline SPROUT_CONSTEXPR auto
get(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<I>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::tuples::get<I>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::tuples::get<I>(SPROUT_FORWARD(T, t)))
{
return sprout::tuples::get<I>(SPROUT_FORWARD(T, t));

View file

@ -38,7 +38,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
r(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
@ -46,7 +46,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
g(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
@ -54,7 +54,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
b(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));
@ -68,7 +68,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR auto
a(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t));
@ -79,7 +79,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR typename sprout::darkroom::access::unit<T>::type
a(T&&)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(typename sprout::darkroom::access::unit<T>::type()))
SPROUT_NOEXCEPT_IF_EXPR(typename sprout::darkroom::access::unit<T>::type())
{
return typename sprout::darkroom::access::unit<T>::type();
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
x(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
@ -34,7 +34,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
y(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
@ -42,7 +42,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
z(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));

View file

@ -51,7 +51,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
does_intersect(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
@ -59,7 +59,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
distance(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
@ -67,7 +67,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
point_of_intersection(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));
@ -75,7 +75,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
normal(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t));
@ -83,7 +83,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
material(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<4>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<4>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<4>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<4>(SPROUT_FORWARD(T, t));
@ -94,7 +94,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR auto
is_from_inside(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<5>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<5>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<5>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<5>(SPROUT_FORWARD(T, t));
@ -105,7 +105,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR typename sprout::darkroom::access::element<5, sprout::darkroom::intersects::intersection>::type
is_from_inside(T&&)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((typename sprout::darkroom::access::element<5, sprout::darkroom::intersects::intersection>::type())))
SPROUT_NOEXCEPT_IF_EXPR((typename sprout::darkroom::access::element<5, sprout::darkroom::intersects::intersection>::type()))
{
return typename sprout::darkroom::access::element<5, sprout::darkroom::intersects::intersection>::type();
}

View file

@ -58,7 +58,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR auto
color(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
@ -69,7 +69,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR typename sprout::darkroom::access::element<0, sprout::darkroom::materials::material>::type
color(T&&)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((typename sprout::darkroom::access::element<0, sprout::darkroom::materials::material>::type())))
SPROUT_NOEXCEPT_IF_EXPR((typename sprout::darkroom::access::element<0, sprout::darkroom::materials::material>::type()))
{
return typename sprout::darkroom::access::element<0, sprout::darkroom::materials::material>::type();
}
@ -82,7 +82,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR auto
reflection(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
@ -93,7 +93,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR typename sprout::darkroom::access::element<1, sprout::darkroom::materials::material>::type
reflection(T&&)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((typename sprout::darkroom::access::element<1, sprout::darkroom::materials::material>::type())))
SPROUT_NOEXCEPT_IF_EXPR((typename sprout::darkroom::access::element<1, sprout::darkroom::materials::material>::type()))
{
return typename sprout::darkroom::access::element<1, sprout::darkroom::materials::material>::type();
}
@ -106,7 +106,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR auto
alpha(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));
@ -117,7 +117,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR typename sprout::darkroom::access::element<2, sprout::darkroom::materials::material>::type
alpha(T&&)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((typename sprout::darkroom::access::element<2, sprout::darkroom::materials::material>::type())))
SPROUT_NOEXCEPT_IF_EXPR((typename sprout::darkroom::access::element<2, sprout::darkroom::materials::material>::type()))
{
return typename sprout::darkroom::access::element<2, sprout::darkroom::materials::material>::type();
}
@ -130,7 +130,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR auto
refraction(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t));
@ -141,7 +141,7 @@ namespace sprout {
>
inline SPROUT_CONSTEXPR typename sprout::darkroom::access::element<3, sprout::darkroom::materials::material>::type
refraction(T&&)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((typename sprout::darkroom::access::element<3, sprout::darkroom::materials::material>::type())))
SPROUT_NOEXCEPT_IF_EXPR((typename sprout::darkroom::access::element<3, sprout::darkroom::materials::material>::type()))
{
return typename sprout::darkroom::access::element<3, sprout::darkroom::materials::material>::type();
}

View file

@ -25,7 +25,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
position(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
@ -33,7 +33,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR auto
direction(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
SPROUT_NOEXCEPT_IF_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
{
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));

View file

@ -38,11 +38,11 @@ namespace sprout {
SPROUT_STATIC_CONSTEXPR std::size_t bit_count = Bits;
};
#define SPROUT_LOW_BITS_MASK_SPECIALIZE(Type) \
#define SPROUT_LOW_BITS_MASK_SPECIALIZE(TYPE) \
template<> \
struct low_bits_mask_t<sprout::numeric_limits<Type>::digits> { \
struct low_bits_mask_t<sprout::numeric_limits<TYPE>::digits> { \
public: \
typedef sprout::numeric_limits<Type> limits_type; \
typedef sprout::numeric_limits<TYPE> limits_type; \
typedef typename sprout::detail::uint_t<limits_type::digits>::least least; \
typedef typename sprout::detail::uint_t<limits_type::digits>::fast fast; \
public: \

View file

@ -13,8 +13,8 @@
//
// SPROUT_VERSION_NUMBER
//
#define SPROUT_VERSION_NUMBER(major, minor, patch) \
((((major) % 100) * 10000000) + (((minor) % 100) * 100000) + ((patch) % 100000))
#define SPROUT_VERSION_NUMBER(MAJOR, MINOR, PATCH) \
((((MAJOR) % 100) * 10000000) + (((MINOR) % 100) * 100000) + ((PATCH) % 100000))
//
// SPROUT_VERSION_NUMBER_ZERO
//
@ -42,14 +42,14 @@
// SPROUT_GCC_OR_LATER
//
#if SPROUT_AVAILABLE_GCC
# define SPROUT_GCC_EARLIER(major, minor, patch) \
(SPROUT_VERSION_GCC < SPROUT_VERSION_NUMBER(major, minor, patch))
# define SPROUT_GCC_OR_LATER(major, minor, patch) \
(SPROUT_VERSION_GCC >= SPROUT_VERSION_NUMBER(major, minor, patch))
# define SPROUT_GCC_EARLIER(MAJOR, MINOR, PATCH) \
(SPROUT_VERSION_GCC < SPROUT_VERSION_NUMBER(MAJOR, MINOR, PATCH))
# define SPROUT_GCC_OR_LATER(MAJOR, MINOR, PATCH) \
(SPROUT_VERSION_GCC >= SPROUT_VERSION_NUMBER(MAJOR, MINOR, PATCH))
#else
# define SPROUT_GCC_EARLIER(major, minor, patch) \
# define SPROUT_GCC_EARLIER(MAJOR, MINOR, PATCH) \
(0)
# define SPROUT_GCC_OR_LATER(major, minor, patch) \
# define SPROUT_GCC_OR_LATER(MAJOR, MINOR, PATCH) \
(0)
#endif
//
@ -92,14 +92,14 @@
// SPROUT_CLANG_OR_LATER
//
#if SPROUT_AVAILABLE_CLANG
# define SPROUT_CLANG_EARLIER(major, minor, patch) \
(SPROUT_VERSION_CLANG < SPROUT_VERSION_NUMBER(major, minor, patch))
# define SPROUT_CLANG_OR_LATER(major, minor, patch) \
(SPROUT_VERSION_CLANG >= SPROUT_VERSION_NUMBER(major, minor, patch))
# define SPROUT_CLANG_EARLIER(MAJOR, MINOR, PATCH) \
(SPROUT_VERSION_CLANG < SPROUT_VERSION_NUMBER(MAJOR, MINOR, PATCH))
# define SPROUT_CLANG_OR_LATER(MAJOR, MINOR, PATCH) \
(SPROUT_VERSION_CLANG >= SPROUT_VERSION_NUMBER(MAJOR, MINOR, PATCH))
#else
# define SPROUT_CLANG_EARLIER(major, minor, patch) \
# define SPROUT_CLANG_EARLIER(MAJOR, MINOR, PATCH) \
(0)
# define SPROUT_CLANG_OR_LATER(major, minor, patch) \
# define SPROUT_CLANG_OR_LATER(MAJOR, MINOR, PATCH) \
(0)
#endif
//

View file

@ -96,7 +96,7 @@ namespace sprout {
return forward_item_iterator(item->next);
}
SPROUT_CXX14_CONSTEXPR void swap(forward_item_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(item, other.item)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(item, other.item))
{
sprout::swap(item, other.item);
}
@ -143,7 +143,7 @@ namespace sprout {
template<typename List>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::detail::forward_item_iterator<List>& lhs, sprout::detail::forward_item_iterator<List>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}
@ -240,7 +240,10 @@ namespace sprout {
{}
SPROUT_CXX14_CONSTEXPR void swap(item& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(val, other.val)) && SPROUT_NOEXCEPT_EXPR(sprout::swap(next, other.next)))
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(val, other.val))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(next, other.next))
)
{
sprout::swap(val, other.val);
sprout::swap(next, other.next);

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(&std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(&std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(&std::declval<T>())
{
return &SPROUT_FORWARD(T, x);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() = std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() = std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() = std::declval<U>())
{
return SPROUT_FORWARD(T, x) = SPROUT_FORWARD(U, y);
}

View file

@ -34,7 +34,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() & std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() & std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() & std::declval<U>())
{
return SPROUT_FORWARD(T, x) & SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() &= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() &= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() &= std::declval<U>())
{
return SPROUT_FORWARD(T, x) &= SPROUT_FORWARD(U, y);
}

View file

@ -33,7 +33,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(~std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(~std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(~std::declval<T>())
{
return ~SPROUT_FORWARD(T, x);
}

View file

@ -34,7 +34,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() | std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() | std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() | std::declval<U>())
{
return SPROUT_FORWARD(T, x) | SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() |= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() |= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() |= std::declval<U>())
{
return SPROUT_FORWARD(T, x) |= SPROUT_FORWARD(U, y);
}

View file

@ -34,7 +34,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() ^ std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^ std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() ^ std::declval<U>())
{
return SPROUT_FORWARD(T, x) ^ SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() ^= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() ^= std::declval<U>())
{
return SPROUT_FORWARD(T, x) ^= SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename F, typename... As>
SPROUT_CONSTEXPR decltype(std::declval<F>()(std::declval<As>()...))
operator()(F&& f, As&&... as)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<F>()(std::declval<As>()...)))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<F>()(std::declval<As>()...))
{
return SPROUT_FORWARD(F, f)(SPROUT_FORWARD(As, as)...);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>(), std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((std::declval<T>(), std::declval<U>())))
const SPROUT_NOEXCEPT_IF_EXPR((std::declval<T>(), std::declval<U>()))
{
return SPROUT_FORWARD(T, x), SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U, typename V>
SPROUT_CONSTEXPR decltype(std::declval<T>() ? std::declval<U>() : std::declval<V>())
operator()(T&& x, U&& y, V&& z)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ? std::declval<U>() : std::declval<V>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() ? std::declval<U>() : std::declval<V>())
{
return SPROUT_FORWARD(T, x) ? SPROUT_FORWARD(U, y) : SPROUT_FORWARD(V, z);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(*std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(*std::declval<T>())
{
return *SPROUT_FORWARD(T, x);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() / std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() / std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() / std::declval<U>())
{
return SPROUT_FORWARD(T, x) / SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() /= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() /= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() /= std::declval<U>())
{
return SPROUT_FORWARD(T, x) /= SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() == std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() == std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() == std::declval<U>())
{
return SPROUT_FORWARD(T, x) == SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() > std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() > std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() > std::declval<U>())
{
return SPROUT_FORWARD(T, x) > SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() >= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() >= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() >= std::declval<U>())
{
return SPROUT_FORWARD(T, x) >= SPROUT_FORWARD(U, y);
}

View file

@ -48,31 +48,31 @@ 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_IF_EXPR(sprout::to_hash(SPROUT_FORWARD(T, v)))
{
return sprout::to_hash(SPROUT_FORWARD(T, v));
}
};
#define SPROUT_HASH_SPECIALIZE(type) \
#define SPROUT_HASH_SPECIALIZE(TYPE) \
template<> \
struct hash<type> { \
struct hash<TYPE> { \
public: \
typedef type argument_type; \
typedef TYPE argument_type; \
typedef std::size_t result_type; \
public: \
SPROUT_CONSTEXPR std::size_t operator()(type v) const { \
SPROUT_CONSTEXPR std::size_t operator()(TYPE v) const { \
return sprout::to_hash(v); \
} \
}
#define SPROUT_HASH_SPECIALIZE_REF(type) \
#define SPROUT_HASH_SPECIALIZE_REF(TYPE) \
template<> \
struct hash<type> { \
struct hash<TYPE> { \
public: \
typedef type argument_type; \
typedef TYPE argument_type; \
typedef std::size_t result_type; \
public: \
SPROUT_CONSTEXPR std::size_t operator()(type const& v) const { \
SPROUT_CONSTEXPR std::size_t operator()(TYPE const& v) const { \
return sprout::to_hash(v); \
} \
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() < std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() < std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() < std::declval<U>())
{
return SPROUT_FORWARD(T, x) < SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() <= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() <= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() <= std::declval<U>())
{
return SPROUT_FORWARD(T, x) <= SPROUT_FORWARD(U, y);
}

View file

@ -34,7 +34,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() && std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() && std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() && std::declval<U>())
{
return SPROUT_FORWARD(T, x) && SPROUT_FORWARD(U, y);
}

View file

@ -33,7 +33,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(!std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(!std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(!std::declval<T>())
{
return !SPROUT_FORWARD(T, x);
}

View file

@ -34,7 +34,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() || std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() || std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() || std::declval<U>())
{
return SPROUT_FORWARD(T, x) || SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>()->*std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()->*std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>()->*std::declval<U>())
{
return SPROUT_FORWARD(T, x)->*SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>().*std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>().*std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>().*std::declval<U>())
{
return SPROUT_FORWARD(T, x).*SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() - std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() - std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() - std::declval<U>())
{
return SPROUT_FORWARD(T, x) - SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() -= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() -= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() -= std::declval<U>())
{
return SPROUT_FORWARD(T, x) -= SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() % std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() % std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() % std::declval<U>())
{
return SPROUT_FORWARD(T, x) % SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() %= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() %= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() %= std::declval<U>())
{
return SPROUT_FORWARD(T, x) %= SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() * std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() * std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() * std::declval<U>())
{
return SPROUT_FORWARD(T, x) * SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() *= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() *= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() *= std::declval<U>())
{
return SPROUT_FORWARD(T, x) *= SPROUT_FORWARD(U, y);
}

View file

@ -35,7 +35,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(-std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(-std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(-std::declval<T>())
{
return -SPROUT_FORWARD(T, x);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() != std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() != std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() != std::declval<U>())
{
return SPROUT_FORWARD(T, x) != SPROUT_FORWARD(U, y);
}

View file

@ -36,7 +36,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() + std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() + std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() + std::declval<U>())
{
return SPROUT_FORWARD(T, x) + SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() += std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() += std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() += std::declval<U>())
{
return SPROUT_FORWARD(T, x) += SPROUT_FORWARD(U, y);
}

View file

@ -30,7 +30,7 @@ namespace sprout {
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>())))
const SPROUT_NOEXCEPT_IF_EXPR(op(value, std::declval<Arg>()))
{
return op(value, SPROUT_FORWARD(Arg, x));
}

View file

@ -30,7 +30,7 @@ namespace sprout {
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)))
const SPROUT_NOEXCEPT_IF_EXPR(op(std::declval<Arg>(), value))
{
return op(SPROUT_FORWARD(Arg, x), value);
}

View file

@ -35,7 +35,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(+std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(+std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(+std::declval<T>())
{
return +SPROUT_FORWARD(T, x);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(~std::declval<T>()--)
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(~std::declval<T>()--))
const SPROUT_NOEXCEPT_IF_EXPR(~std::declval<T>()--)
{
return SPROUT_FORWARD(T, x)--;
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(std::declval<T>()++)
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()++))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>()++)
{
return SPROUT_FORWARD(T, x)++;
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(--std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(--std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(--std::declval<T>())
{
return --SPROUT_FORWARD(T, x);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T>
SPROUT_CONSTEXPR decltype(++std::declval<T>())
operator()(T&& x)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(++std::declval<T>()))
const SPROUT_NOEXCEPT_IF_EXPR(++std::declval<T>())
{
return ++SPROUT_FORWARD(T, x);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() << std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() << std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() << std::declval<U>())
{
return SPROUT_FORWARD(T, x) << SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() <<= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() <<= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() <<= std::declval<U>())
{
return SPROUT_FORWARD(T, x) <<= SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() >> std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() << std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() << std::declval<U>())
{
return SPROUT_FORWARD(T, x) >> SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>() >>= std::declval<U>())
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() >>= std::declval<U>()))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>() >>= std::declval<U>())
{
return SPROUT_FORWARD(T, x) >>= SPROUT_FORWARD(U, y);
}

View file

@ -26,7 +26,7 @@ namespace sprout {
template<typename T, typename U>
SPROUT_CONSTEXPR decltype(std::declval<T>()[std::declval<U>()])
operator()(T&& x, U&& y)
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()[std::declval<U>()]))
const SPROUT_NOEXCEPT_IF_EXPR(std::declval<T>()[std::declval<U>()])
{
return SPROUT_FORWARD(T, x)[SPROUT_FORWARD(U, y)];
}

View file

@ -25,7 +25,7 @@ namespace sprout_generator_detail {
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(sprout::generators::generator_access_traits<Gen>::get_generated_value(std::declval<Gen&>()))
get_generated_value(Gen& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<Gen>::get_generated_value(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<Gen>::get_generated_value(std::declval<Gen&>()))
{
return sprout::generators::generator_access_traits<Gen>::get_generated_value(gen);
}
@ -35,14 +35,14 @@ namespace sprout_generator_detail {
decltype(sprout::generators::generator_access_traits<typename std::remove_reference<Gen>::type>::get_generated_value(std::declval<Gen&&>()))
>::type
get_generated_value(Gen&& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<typename std::remove_reference<Gen>::type>::get_generated_value(std::declval<Gen&&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<typename std::remove_reference<Gen>::type>::get_generated_value(std::declval<Gen&&>()))
{
return sprout::generators::generator_access_traits<Gen>::get_generated_value(gen);
}
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(sprout::generators::generator_access_traits<Gen const>::get_generated_value(std::declval<Gen const&>()))
get_generated_value(Gen const& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<Gen const>::get_generated_value(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<Gen const>::get_generated_value(std::declval<Gen const&>()))
{
return sprout::generators::generator_access_traits<Gen const>::get_generated_value(gen);
}
@ -50,7 +50,7 @@ namespace sprout_generator_detail {
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(get_generated_value(std::declval<Gen&>()))
call_get_generated_value(Gen& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(get_generated_value(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(get_generated_value(std::declval<Gen&>()))
{
return get_generated_value(gen);
}
@ -60,14 +60,14 @@ namespace sprout_generator_detail {
decltype(get_generated_value(std::declval<Gen&&>()))
>::type
call_get_generated_value(Gen&& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(get_generated_value(std::declval<Gen&&>())))
SPROUT_NOEXCEPT_IF_EXPR(get_generated_value(std::declval<Gen&&>()))
{
return get_generated_value(gen);
}
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(get_generated_value(std::declval<Gen const&>()))
call_get_generated_value(Gen const& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(get_generated_value(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(get_generated_value(std::declval<Gen const&>()))
{
return get_generated_value(gen);
}
@ -88,7 +88,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR decltype(sprout_generator_detail::call_get_generated_value(std::declval<T>()))
generated_value(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout_generator_detail::call_get_generated_value(std::declval<T>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout_generator_detail::call_get_generated_value(std::declval<T>()))
{
return sprout_generator_detail::call_get_generated_value(SPROUT_FORWARD(T, t));
}

View file

@ -50,19 +50,19 @@ namespace sprout {
public:
static SPROUT_CONSTEXPR decltype(std::declval<Gen&>().generated_value())
get_generated_value(Gen& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<Gen&>().generated_value()))
SPROUT_NOEXCEPT_IF_EXPR(std::declval<Gen&>().generated_value())
{
return t.generated_value();
}
static SPROUT_CONSTEXPR decltype(std::declval<Gen&&>().generated_value())
get_generated_value(Gen&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<Gen&&>().generated_value()))
SPROUT_NOEXCEPT_IF_EXPR(std::declval<Gen&&>().generated_value())
{
return t.generated_value();
}
static SPROUT_CONSTEXPR decltype(std::declval<Gen const&>().generated_value())
get_generated_value(Gen const& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<Gen const&>().generated_value()))
SPROUT_NOEXCEPT_IF_EXPR(std::declval<Gen const&>().generated_value())
{
return t.generated_value();
}
@ -75,19 +75,19 @@ namespace sprout {
public:
static SPROUT_CONSTEXPR decltype(sprout::tuples::get<0>(std::declval<Gen&>()))
get_generated_value(Gen& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<0>(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::tuples::get<0>(std::declval<Gen&>()))
{
return sprout::tuples::get<0>(t);
}
static SPROUT_CONSTEXPR decltype(sprout::tuples::get<0>(std::declval<Gen&&>()))
get_generated_value(Gen&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<0>(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::tuples::get<0>(std::declval<Gen&>()))
{
return sprout::tuples::get<0>(t);
}
static SPROUT_CONSTEXPR decltype(sprout::tuples::get<0>(std::declval<Gen const&>()))
get_generated_value(Gen const& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<0>(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::tuples::get<0>(std::declval<Gen const&>()))
{
return sprout::tuples::get<0>(t);
}
@ -125,19 +125,19 @@ namespace sprout {
public:
static SPROUT_CONSTEXPR decltype(std::declval<Gen&>().next_generator())
get_next_generator(Gen& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<Gen&>().next_generator()))
SPROUT_NOEXCEPT_IF_EXPR(std::declval<Gen&>().next_generator())
{
return t.next_generator();
}
static SPROUT_CONSTEXPR decltype(std::declval<Gen&&>().next_generator())
get_next_generator(Gen&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<Gen&&>().next_generator()))
SPROUT_NOEXCEPT_IF_EXPR(std::declval<Gen&&>().next_generator())
{
return t.next_generator();
}
static SPROUT_CONSTEXPR decltype(std::declval<Gen const&>().next_generator())
get_next_generator(Gen const& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<Gen const&>().next_generator()))
SPROUT_NOEXCEPT_IF_EXPR(std::declval<Gen const&>().next_generator())
{
return t.next_generator();
}
@ -150,19 +150,19 @@ namespace sprout {
public:
static SPROUT_CONSTEXPR decltype(sprout::tuples::get<1>(std::declval<Gen&>()))
get_next_generator(Gen& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<1>(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::tuples::get<1>(std::declval<Gen&>()))
{
return sprout::tuples::get<1>(t);
}
static SPROUT_CONSTEXPR decltype(sprout::tuples::get<1>(std::declval<Gen&&>()))
get_next_generator(Gen&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<1>(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::tuples::get<1>(std::declval<Gen&>()))
{
return sprout::tuples::get<1>(t);
}
static SPROUT_CONSTEXPR decltype(sprout::tuples::get<1>(std::declval<Gen const&>()))
get_next_generator(Gen const& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<1>(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::tuples::get<1>(std::declval<Gen const&>()))
{
return sprout::tuples::get<1>(t);
}
@ -182,13 +182,13 @@ namespace sprout {
public:
static SPROUT_CONSTEXPR decltype(sprout::generators::generator_access_traits<Gen>::get_generated_value(std::declval<Gen const&>()))
get_generated_value(Gen const& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<Gen>::get_generated_value(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<Gen>::get_generated_value(std::declval<Gen const&>()))
{
return sprout::generators::generator_access_traits<Gen>::get_generated_value(t);
}
static SPROUT_CONSTEXPR decltype(sprout::generators::generator_access_traits<Gen>::get_next_generator(std::declval<Gen const&>()))
get_next_generator(Gen const& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<Gen>::get_next_generator(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<Gen>::get_next_generator(std::declval<Gen const&>()))
{
return sprout::generators::generator_access_traits<Gen>::get_next_generator(t);
}

View file

@ -25,7 +25,7 @@ namespace sprout_generator_detail {
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(sprout::generators::generator_access_traits<Gen>::get_next_generator(std::declval<Gen&>()))
get_next_generator(Gen& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<Gen>::get_next_generator(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<Gen>::get_next_generator(std::declval<Gen&>()))
{
return sprout::generators::generator_access_traits<Gen>::get_next_generator(gen);
}
@ -35,14 +35,14 @@ namespace sprout_generator_detail {
decltype(sprout::generators::generator_access_traits<typename std::remove_reference<Gen>::type>::get_next_generator(std::declval<Gen&&>()))
>::type
get_next_generator(Gen&& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<typename std::remove_reference<Gen>::type>::get_next_generator(std::declval<Gen&&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<typename std::remove_reference<Gen>::type>::get_next_generator(std::declval<Gen&&>()))
{
return sprout::generators::generator_access_traits<Gen>::get_next_generator(gen);
}
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(sprout::generators::generator_access_traits<Gen const>::get_next_generator(std::declval<Gen const&>()))
get_next_generator(Gen const& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::generators::generator_access_traits<Gen const>::get_next_generator(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout::generators::generator_access_traits<Gen const>::get_next_generator(std::declval<Gen const&>()))
{
return sprout::generators::generator_access_traits<Gen const>::get_next_generator(gen);
}
@ -50,7 +50,7 @@ namespace sprout_generator_detail {
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(get_next_generator(std::declval<Gen&>()))
call_get_next_generator(Gen& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(get_next_generator(std::declval<Gen&>())))
SPROUT_NOEXCEPT_IF_EXPR(get_next_generator(std::declval<Gen&>()))
{
return get_next_generator(gen);
}
@ -60,14 +60,14 @@ namespace sprout_generator_detail {
decltype(get_next_generator(std::declval<Gen&&>()))
>::type
call_get_next_generator(Gen&& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(get_next_generator(std::declval<Gen&&>())))
SPROUT_NOEXCEPT_IF_EXPR(get_next_generator(std::declval<Gen&&>()))
{
return get_next_generator(gen);
}
template<typename Gen>
inline SPROUT_CONSTEXPR decltype(get_next_generator(std::declval<Gen const&>()))
call_get_next_generator(Gen const& gen)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(get_next_generator(std::declval<Gen const&>())))
SPROUT_NOEXCEPT_IF_EXPR(get_next_generator(std::declval<Gen const&>()))
{
return get_next_generator(gen);
}
@ -88,7 +88,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CONSTEXPR decltype(sprout_generator_detail::call_get_next_generator(std::declval<T>()))
next_generator(T&& t)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout_generator_detail::call_get_next_generator(std::declval<T>())))
SPROUT_NOEXCEPT_IF_EXPR(sprout_generator_detail::call_get_next_generator(std::declval<T>()))
{
return sprout_generator_detail::call_get_next_generator(SPROUT_FORWARD(T, t));
}

View file

@ -124,7 +124,7 @@ namespace sprout {
return adjacent_filter_iterator(pred, checked_next(find_next(current, last, pred), last), last, private_construct_t());
}
SPROUT_CXX14_CONSTEXPR void swap(adjacent_filter_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(last, other.last))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(pred, other.pred))
@ -168,7 +168,7 @@ namespace sprout {
template<typename Predicate, typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::adjacent_filter_iterator<Predicate, Iterator>& lhs, sprout::adjacent_filter_iterator<Predicate, Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -160,7 +160,7 @@ namespace sprout {
;
}
SPROUT_CXX14_CONSTEXPR void swap(alternate_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current1, other.current1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(current2, other.current2))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(in_left, other.in_left))
@ -280,7 +280,7 @@ namespace sprout {
sprout::alternate_iterator<LIterator, RIterator>& lhs,
sprout::alternate_iterator<LIterator, RIterator>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -77,7 +77,7 @@ namespace sprout {
}
SPROUT_CXX14_CONSTEXPR void swap(back_insert_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(base_type::swap(other)))
SPROUT_NOEXCEPT_IF_EXPR(base_type::swap(other))
{
base_type::swap(other);
}
@ -89,7 +89,7 @@ namespace sprout {
template<typename Container>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::back_insert_iterator<Container>& lhs, sprout::back_insert_iterator<Container>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -101,7 +101,7 @@ namespace sprout {
return bytes_iterator(it_, i_ - 1, prev_tag());
}
SPROUT_CXX14_CONSTEXPR void swap(bytes_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(it_, other.it_)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(it_, other.it_))
{
sprout::swap(it_, other.it_);
sprout::swap(i_, other.i_);
@ -197,7 +197,7 @@ namespace sprout {
template<typename Iterator, typename Traits>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::bytes_iterator<Iterator, Traits>& lhs, sprout::bytes_iterator<Iterator, Traits>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -123,7 +123,7 @@ namespace sprout {
return clamp_iterator(sprout::prev(current), low, up, comp);
}
SPROUT_CXX14_CONSTEXPR void swap(clamp_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(comp, other.comp))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(low, other.low))
@ -216,7 +216,7 @@ namespace sprout {
template<typename Iterator, typename Compare>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::clamp_iterator<Iterator, Compare>& lhs, sprout::clamp_iterator<Iterator, Compare>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -120,7 +120,7 @@ namespace sprout {
return counting_iterator(current_ - 1);
}
SPROUT_CXX14_CONSTEXPR void swap(counting_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(current_, other.current_)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(current_, other.current_))
{
sprout::swap(current_, other.current_);
}
@ -186,7 +186,7 @@ namespace sprout {
template<typename Incrementable>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::counting_iterator<Incrementable>& lhs, sprout::counting_iterator<Incrementable>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -75,7 +75,10 @@ namespace sprout {
return dft_iterator(first_, last_, index_, index_ - 1, size_);
}
SPROUT_CXX14_CONSTEXPR void swap(dft_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(first_, other.first_)) && SPROUT_NOEXCEPT_EXPR(sprout::swap(last_, other.last_)))
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(first_, other.first_))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(last_, other.last_))
)
{
sprout::swap(first_, other.first_);
sprout::swap(last_, other.last_);
@ -182,7 +185,7 @@ namespace sprout {
template<typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::dft_iterator<Iterator>& lhs, sprout::dft_iterator<Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -140,7 +140,7 @@ namespace sprout {
return filter_iterator(pred, find_prev(sprout::prev(current), pred), last, private_construct_t());
}
SPROUT_CXX14_CONSTEXPR void swap(filter_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(last, other.last))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(pred, other.pred))
@ -184,7 +184,7 @@ namespace sprout {
template<typename Predicate, typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::filter_iterator<Predicate, Iterator>& lhs, sprout::filter_iterator<Predicate, Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -77,7 +77,7 @@ namespace sprout {
}
SPROUT_CXX14_CONSTEXPR void swap(front_insert_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(base_type::swap(other)))
SPROUT_NOEXCEPT_IF_EXPR(base_type::swap(other))
{
base_type::swap(other);
}
@ -89,7 +89,7 @@ namespace sprout {
template<typename Container>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::front_insert_iterator<Container>& lhs, sprout::front_insert_iterator<Container>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -76,7 +76,7 @@ namespace sprout {
return generated_value();
}
SPROUT_CXX14_CONSTEXPR void swap(generator_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(gen_, other.gen_)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(gen_, other.gen_))
{
sprout::swap(gen_, other.gen_);
sprout::swap(index_, other.index_);
@ -141,7 +141,7 @@ namespace sprout {
template<typename Generator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::generator_iterator<Generator>& lhs, sprout::generator_iterator<Generator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -75,7 +75,10 @@ namespace sprout {
return idft_iterator(first_, last_, index_, index_ - 1, size_);
}
SPROUT_CXX14_CONSTEXPR void swap(idft_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(first_, other.first_)) && SPROUT_NOEXCEPT_EXPR(sprout::swap(last_, other.last_)))
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(first_, other.first_))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(last_, other.last_))
)
{
sprout::swap(first_, other.first_);
sprout::swap(last_, other.last_);
@ -182,7 +185,7 @@ namespace sprout {
template<typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::idft_iterator<Iterator>& lhs, sprout::idft_iterator<Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -123,7 +123,7 @@ namespace sprout {
return index_iterator(holder_, index_ - 1);
}
SPROUT_CXX14_CONSTEXPR void swap(index_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(holder_, other.holder_)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(holder_, other.holder_))
{
sprout::swap(holder_, other.holder_);
sprout::swap(index_, other.index_);
@ -246,7 +246,7 @@ namespace sprout {
template<typename Container, bool C>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::index_iterator<Container, C>& lhs, sprout::index_iterator<Container, C>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -124,7 +124,7 @@ namespace sprout {
return indexed_iterator(sprout::prev(current), idx - 1);
}
SPROUT_CXX14_CONSTEXPR void swap(indexed_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(swap(idx, other.idx))
)
@ -194,7 +194,7 @@ namespace sprout {
template<typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::indexed_iterator<Iterator>& lhs, sprout::indexed_iterator<Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -84,7 +84,7 @@ namespace sprout {
}
SPROUT_CXX14_CONSTEXPR void swap(insert_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(base_type::swap(other))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(other.iter, iter))
)
@ -100,7 +100,7 @@ namespace sprout {
template<typename Container>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::insert_iterator<Container>& lhs, sprout::insert_iterator<Container>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -177,7 +177,7 @@ namespace sprout {
;
}
SPROUT_CXX14_CONSTEXPR void swap(insert_range_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current1, other.current1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(pos1, other.pos1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(current2, other.current2))
@ -304,7 +304,7 @@ namespace sprout {
sprout::insert_range_iterator<DstIterator, SrcIterator>& lhs,
sprout::insert_range_iterator<DstIterator, SrcIterator>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -175,7 +175,7 @@ namespace sprout {
;
}
SPROUT_CXX14_CONSTEXPR void swap(joint_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current1, other.current1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(last1, other.last1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(first2, other.first2))
@ -314,7 +314,7 @@ namespace sprout {
sprout::joint_iterator<LIterator, RIterator>& lhs,
sprout::joint_iterator<LIterator, RIterator>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -167,7 +167,7 @@ namespace sprout {
;
}
SPROUT_CXX14_CONSTEXPR void swap(merge_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current1, other.current1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst1, other.lst1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(current2, other.current2))
@ -231,7 +231,7 @@ namespace sprout {
sprout::merge_iterator<LIterator, RIterator, Compare>& lhs,
sprout::merge_iterator<LIterator, RIterator, Compare>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -113,7 +113,7 @@ namespace sprout {
return move_iterator(sprout::prev(current));
}
SPROUT_CXX14_CONSTEXPR void swap(move_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
)
{
@ -181,7 +181,7 @@ namespace sprout {
template<typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::move_iterator<Iterator>& lhs, sprout::move_iterator<Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -86,8 +86,9 @@ namespace sprout {
return next_iterator(current);
}
SPROUT_CXX14_CONSTEXPR void swap(next_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_EXPR(swap(holder_, other.holder_)) && SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(swap(holder_, other.holder_))
&& SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
)
{
swap(holder_, other.holder_);
@ -121,7 +122,7 @@ namespace sprout {
template<typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::next_iterator<Iterator>& lhs, sprout::next_iterator<Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -211,7 +211,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::ptr_index_iterator<T>& lhs, sprout::ptr_index_iterator<T>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -201,7 +201,7 @@ namespace sprout {
);
}
SPROUT_CXX14_CONSTEXPR void swap(remake_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(swap(current2, other.current2))
&& SPROUT_NOEXCEPT_EXPR(swap(fst, other.fst))
@ -327,7 +327,7 @@ namespace sprout {
template<typename DstIterator, typename SrcIterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::remake_iterator<DstIterator, SrcIterator>& lhs, sprout::remake_iterator<DstIterator, SrcIterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -112,7 +112,7 @@ namespace sprout {
return reverse_iterator(sprout::next(current));
}
SPROUT_CXX14_CONSTEXPR void swap(reverse_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
)
{
@ -180,7 +180,7 @@ namespace sprout {
template<typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::reverse_iterator<Iterator>& lhs, sprout::reverse_iterator<Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -203,7 +203,7 @@ namespace sprout {
template<typename Value>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::sawtooth_iterator<Value>& lhs, sprout::sawtooth_iterator<Value>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -131,7 +131,7 @@ namespace sprout {
);
}
SPROUT_CXX14_CONSTEXPR void swap(set_difference_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst1, other.lst1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst2, other.lst2))
@ -191,7 +191,7 @@ namespace sprout {
sprout::set_difference_iterator<LIterator, RIterator, Compare>& lhs,
sprout::set_difference_iterator<LIterator, RIterator, Compare>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -131,7 +131,7 @@ namespace sprout {
);
}
SPROUT_CXX14_CONSTEXPR void swap(set_intersection_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst1, other.lst1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst2, other.lst2))
@ -191,7 +191,7 @@ namespace sprout {
sprout::set_intersection_iterator<LIterator, RIterator, Compare>& lhs,
sprout::set_intersection_iterator<LIterator, RIterator, Compare>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -198,7 +198,7 @@ namespace sprout {
);
}
SPROUT_CXX14_CONSTEXPR void swap(set_symmetric_difference_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst1, other.lst1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst2, other.lst2))
@ -259,7 +259,7 @@ namespace sprout {
sprout::set_symmetric_difference_iterator<LIterator, RIterator, Compare>& lhs,
sprout::set_symmetric_difference_iterator<LIterator, RIterator, Compare>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -148,7 +148,7 @@ namespace sprout {
);
}
SPROUT_CXX14_CONSTEXPR void swap(set_union_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst1, other.lst1))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(lst2, other.lst2))
@ -209,7 +209,7 @@ namespace sprout {
sprout::set_union_iterator<LIterator, RIterator, Compare>& lhs,
sprout::set_union_iterator<LIterator, RIterator, Compare>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -209,7 +209,7 @@ namespace sprout {
template<typename Value>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::sinusoid_iterator<Value>& lhs, sprout::sinusoid_iterator<Value>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -123,7 +123,7 @@ namespace sprout {
return size_enum_iterator(sprout::prev(current));
}
SPROUT_CXX14_CONSTEXPR void swap(size_enum_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(current, other.current))
{
sprout::swap(current, other.current);
}
@ -268,7 +268,7 @@ namespace sprout {
;
}
SPROUT_CXX14_CONSTEXPR void swap(size_enum_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(current, other.current))
{
sprout::swap(current, other.current);
sprout::swap(sep_size, other.sep_size);
@ -408,7 +408,7 @@ namespace sprout {
template<typename Iterator, bool Separated>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::size_enum_iterator<Iterator, Separated>& lhs, sprout::size_enum_iterator<Iterator, Separated>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -213,7 +213,7 @@ namespace sprout {
template<typename Value>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::square_iterator<Value>& lhs, sprout::square_iterator<Value>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -158,7 +158,7 @@ namespace sprout {
return step_iterator(*this, -1);
}
SPROUT_CXX14_CONSTEXPR void swap(step_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(swap(last, other.last))
&& SPROUT_NOEXCEPT_EXPR(swap(wid, other.wid))
@ -235,7 +235,7 @@ namespace sprout {
template<typename Iterator>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::step_iterator<Iterator>& lhs, sprout::step_iterator<Iterator>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -158,7 +158,7 @@ namespace sprout {
return transform_iterator(sprout::prev(current), sprout::prev(current2), func);
}
SPROUT_CXX14_CONSTEXPR void swap(transform_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(current2, other.current2))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(func, other.func))
@ -285,7 +285,7 @@ namespace sprout {
return transform_iterator(sprout::prev(current), func);
}
SPROUT_CXX14_CONSTEXPR void swap(transform_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(sprout::swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(sprout::swap(func, other.func))
)
@ -404,7 +404,7 @@ namespace sprout {
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator>& lhs,
sprout::transform_iterator<UnaryOrBinaryFunction, LIterator, RIterator>& rhs
)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -227,7 +227,7 @@ namespace sprout {
template<typename Value>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::triangle_iterator<Value>& lhs, sprout::triangle_iterator<Value>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -86,7 +86,7 @@ namespace sprout {
return value_iterator(holder_, index_ + 1);
}
SPROUT_CXX14_CONSTEXPR void swap(value_iterator& other)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::swap(holder_, other.holder_)))
SPROUT_NOEXCEPT_IF_EXPR(sprout::swap(holder_, other.holder_))
{
sprout::swap(holder_, other.holder_);
sprout::swap(index_, other.index_);
@ -185,7 +185,7 @@ namespace sprout {
template<typename T>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::value_iterator<T>& lhs, sprout::value_iterator<T>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

View file

@ -132,7 +132,7 @@ namespace sprout {
return valued_iterator(sprout::prev(current), holder);
}
SPROUT_CXX14_CONSTEXPR void swap(valued_iterator& other)
SPROUT_NOEXCEPT_EXPR(
SPROUT_NOEXCEPT_IF(
SPROUT_NOEXCEPT_EXPR(swap(current, other.current))
&& SPROUT_NOEXCEPT_EXPR(swap(holder, other.holder))
)
@ -202,7 +202,7 @@ namespace sprout {
template<typename Iterator, typename T>
inline SPROUT_CXX14_CONSTEXPR void
swap(sprout::valued_iterator<Iterator, T>& lhs, sprout::valued_iterator<Iterator, T>& rhs)
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(lhs.swap(rhs)))
SPROUT_NOEXCEPT_IF_EXPR(lhs.swap(rhs))
{
lhs.swap(rhs);
}

Some files were not shown because too many files have changed in this diff Show more