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
|
@ -44,9 +44,8 @@ namespace sprout {
|
|||
template<std::size_t I, typename... Types>
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::tuple_element<I, sprout::tuples::tuple<Types...> >::type&&
|
||||
tuple_get(sprout::tuples::tuple<Types...>&& t) SPROUT_NOEXCEPT {
|
||||
return sprout::forward<typename sprout::tuples::tuple_element<I, sprout::tuples::tuple<Types...> >::type>(
|
||||
sprout::tuples::tuple_get<I>(t)
|
||||
);
|
||||
typedef typename sprout::tuples::tuple_element<I, sprout::tuples::tuple<Types...> >::type type;
|
||||
return SPROUT_FORWARD(type, sprout::tuples::tuple_get<I>(t));
|
||||
}
|
||||
template<std::size_t I, typename... Types>
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::tuple_element<I, sprout::tuples::tuple<Types...> >::type const&
|
||||
|
@ -96,7 +95,7 @@ namespace sprout_tuple_detail {
|
|||
call_tuple_get(T&& t)
|
||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(tuple_get<I>(std::declval<T>())))
|
||||
{
|
||||
return tuple_get<I>(sprout::forward<T>(t));
|
||||
return tuple_get<I>(SPROUT_FORWARD(T, t));
|
||||
}
|
||||
} // namespace sprout_tuple_detail
|
||||
|
||||
|
@ -116,7 +115,7 @@ namespace sprout {
|
|||
get(T&& t)
|
||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout_tuple_detail::call_tuple_get<I>(std::declval<T>())))
|
||||
{
|
||||
return sprout_tuple_detail::call_tuple_get<I>(sprout::forward<T>(t));
|
||||
return sprout_tuple_detail::call_tuple_get<I>(SPROUT_FORWARD(T, t));
|
||||
}
|
||||
} // namespace tuples
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace sprout {
|
|||
template<typename... Types>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<typename sprout::strip_reference<typename std::decay<Types>::type>::type...>
|
||||
make_tuple(Types&&... args) {
|
||||
return sprout::tuples::tuple<typename std::decay<Types>::type...>(sprout::forward<Types>(args)...);
|
||||
return sprout::tuples::tuple<typename std::decay<Types>::type...>(SPROUT_FORWARD(Types, args)...);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -34,7 +34,7 @@ namespace sprout {
|
|||
template<typename... Types>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types&&...>
|
||||
forward_as_tuple(Types&&... args) SPROUT_NOEXCEPT {
|
||||
return sprout::tuples::tuple<Types&&...>(sprout::forward<Types>(args)...);
|
||||
return sprout::tuples::tuple<Types&&...>(SPROUT_FORWARD(Types, args)...);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -124,7 +124,7 @@ namespace sprout {
|
|||
template<typename... Args>
|
||||
static SPROUT_CONSTEXPR Result
|
||||
call(Args&&... args) {
|
||||
return Result(sprout::forward<Args>(args)...);
|
||||
return Result(SPROUT_FORWARD(Args, args)...);
|
||||
}
|
||||
};
|
||||
template<typename Result, sprout::index_t... Indexes, typename Head, typename... Tail>
|
||||
|
@ -138,8 +138,8 @@ namespace sprout {
|
|||
typename sprout::tuples::detail::tuple_cat_1st_indexes<Tail...>::type,
|
||||
Tail...
|
||||
>::call(
|
||||
sprout::forward<Args>(args)...,
|
||||
sprout::tuples::get<Indexes>(sprout::forward<T>(t))...
|
||||
SPROUT_FORWARD(Args, args)...,
|
||||
sprout::tuples::get<Indexes>(SPROUT_FORWARD(T, t))...
|
||||
);
|
||||
}
|
||||
};
|
||||
|
@ -154,7 +154,7 @@ namespace sprout {
|
|||
typename sprout::tuples::results::tuple_cat<Tuples...>::type,
|
||||
typename sprout::tuples::detail::tuple_cat_1st_indexes<Tuples...>::type,
|
||||
Tuples...
|
||||
>::call(sprout::forward<Tuples>(tuples)...);
|
||||
>::call(SPROUT_FORWARD(Tuples, tuples)...);
|
||||
}
|
||||
} // namespace tuples
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace sprout {
|
|||
typename
|
||||
>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::pair<UType1, UType2>&& t)
|
||||
: impl_type(sprout::forward<typename sprout::pair<UType1, UType2>::first_type>(t.first), sprout::forward<typename sprout::pair<UType1, UType2>::second_type>(t.second))
|
||||
: impl_type(SPROUT_FORWARD(UType1, t.first), SPROUT_FORWARD(UType2, t.second))
|
||||
{}
|
||||
|
||||
template<typename... Types>
|
||||
|
@ -51,7 +51,7 @@ namespace sprout {
|
|||
typename
|
||||
>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::tuples::flexibly_construct_t, sprout::pair<UType1, UType2>&& t)
|
||||
: impl_type(sprout::forward<typename sprout::pair<UType1, UType2>::first_type>(t.first), sprout::forward<typename sprout::pair<UType1, UType2>::second_type>(t.second))
|
||||
: impl_type(SPROUT_FORWARD(UType1, t.first), SPROUT_FORWARD(UType2, t.second))
|
||||
{}
|
||||
} // namespace tuples
|
||||
} // namespace sprout
|
||||
|
|
|
@ -52,7 +52,7 @@ namespace sprout {
|
|||
// {}
|
||||
// template<typename UHead>
|
||||
// explicit SPROUT_CONSTEXPR head_base(UHead&& v)
|
||||
// : Head(sprout::forward<UHead>(v))
|
||||
// : Head(SPROUT_FORWARD(UHead, v))
|
||||
// {}
|
||||
// };
|
||||
template<std::size_t Index, typename Head>
|
||||
|
@ -75,7 +75,7 @@ namespace sprout {
|
|||
{}
|
||||
template<typename UHead>
|
||||
explicit SPROUT_CONSTEXPR head_base(UHead&& v)
|
||||
: head_(sprout::forward<UHead>(v))
|
||||
: head_(SPROUT_FORWARD(UHead, v))
|
||||
{}
|
||||
};
|
||||
template<std::size_t Index, typename Head>
|
||||
|
@ -98,7 +98,7 @@ namespace sprout {
|
|||
{}
|
||||
template<typename UHead>
|
||||
explicit SPROUT_CONSTEXPR head_base(UHead&& v)
|
||||
: head_(sprout::forward<UHead>(v))
|
||||
: head_(SPROUT_FORWARD(UHead, v))
|
||||
{}
|
||||
};
|
||||
|
||||
|
@ -185,8 +185,8 @@ namespace sprout {
|
|||
{}
|
||||
template<typename UHead, typename... UTail>
|
||||
explicit SPROUT_CONSTEXPR tuple_impl(UHead&& h, UTail&&... tail)
|
||||
: inherited_type(sprout::forward<UTail>(tail)...)
|
||||
, base_type(sprout::forward<UHead>(h))
|
||||
: inherited_type(SPROUT_FORWARD(UTail, tail)...)
|
||||
, base_type(SPROUT_FORWARD(UHead, h))
|
||||
{}
|
||||
tuple_impl(tuple_impl const&) = default;
|
||||
#if SPROUT_GCC_IN_RANGE((4, 8, 0), (4, 8, 2))
|
||||
|
@ -195,7 +195,7 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR tuple_impl(tuple_impl&& t)
|
||||
SPROUT_NOEXCEPT_EXPR(std::is_nothrow_move_constructible<Head>::value && std::is_nothrow_move_constructible<inherited_type>::value)
|
||||
: inherited_type(sprout::move(tail(t)))
|
||||
, base_type(sprout::forward<Head>(head(t)))
|
||||
, base_type(SPROUT_FORWARD(Head, head(t)))
|
||||
{}
|
||||
#endif
|
||||
template<typename... UTypes>
|
||||
|
@ -206,7 +206,7 @@ namespace sprout {
|
|||
template<typename UHead, typename... UTail>
|
||||
SPROUT_CONSTEXPR tuple_impl(tuple_impl<Index, UHead, UTail...>&& t)
|
||||
: inherited_type(sprout::move(sprout::tuples::detail::tuple_impl<Index, UHead, UTail...>::tail(t)))
|
||||
, base_type(sprout::forward<UHead>(sprout::tuples::detail::tuple_impl<Index, UHead, UTail...>::head(t)))
|
||||
, base_type(SPROUT_FORWARD(UHead, (sprout::tuples::detail::tuple_impl<Index, UHead, UTail...>::head(t))))
|
||||
{}
|
||||
SPROUT_CONSTEXPR tuple_impl(tuple_impl<Index> const&)
|
||||
: inherited_type()
|
||||
|
@ -224,7 +224,7 @@ namespace sprout {
|
|||
SPROUT_CXX14_CONSTEXPR tuple_impl& operator=(tuple_impl&& t)
|
||||
SPROUT_NOEXCEPT_EXPR(std::is_nothrow_move_assignable<Head>::value && std::is_nothrow_move_assignable<inherited_type>::value)
|
||||
{
|
||||
head(*this) = sprout::forward<Head>(head(t));
|
||||
head(*this) = SPROUT_FORWARD(Head, head(t));
|
||||
tail(*this) = sprout::move(tail(t));
|
||||
return *this;
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ namespace sprout {
|
|||
}
|
||||
template<typename UHead, typename... UTail>
|
||||
SPROUT_CXX14_CONSTEXPR tuple_impl& operator=(sprout::tuples::detail::tuple_impl<Index, UHead, UTail...>&& t) {
|
||||
head(*this) = sprout::forward<UHead>(sprout::tuples::detail::tuple_impl<Index, UHead, UTail...>::head(t));
|
||||
head(*this) = SPROUT_FORWARD(UHead, (sprout::tuples::detail::tuple_impl<Index, UHead, UTail...>::head(t)));
|
||||
tail(*this) = sprout::move(sprout::tuples::detail::tuple_impl<Index, UHead, UTail...>::tail(t));
|
||||
return *this;
|
||||
}
|
||||
|
@ -319,7 +319,7 @@ namespace sprout {
|
|||
>::type
|
||||
>
|
||||
explicit SPROUT_CONSTEXPR tuple(UTypes&&... elements)
|
||||
: impl_type(sprout::forward<UTypes>(elements)...)
|
||||
: impl_type(SPROUT_FORWARD(UTypes, elements)...)
|
||||
{}
|
||||
tuple(tuple const&) = default;
|
||||
tuple(tuple&&) = default;
|
||||
|
@ -363,7 +363,7 @@ namespace sprout {
|
|||
>::type
|
||||
>
|
||||
explicit SPROUT_CONSTEXPR tuple(sprout::tuples::flexibly_construct_t, UTypes&&... elements)
|
||||
: impl_type(sprout::forward<UTypes>(elements)...)
|
||||
: impl_type(SPROUT_FORWARD(UTypes, elements)...)
|
||||
{}
|
||||
template<
|
||||
typename... UTypes,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue