forked from boostorg/fusion
vector: Simplify assign_sequence
This commit is contained in:
@ -214,21 +214,12 @@ namespace boost { namespace fusion
|
|||||||
void
|
void
|
||||||
assign_sequence(Sequence&& seq)
|
assign_sequence(Sequence&& seq)
|
||||||
{
|
{
|
||||||
assign(std::forward<Sequence>(seq), detail::index_sequence<I...>());
|
#ifndef BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
}
|
(void(store<I, T>::elem = vector_detail::forward_at_c<I>(static_cast<Sequence&&>(seq))), ...);
|
||||||
|
#else
|
||||||
template <typename Sequence>
|
int nofold[] = { (void(store<I, T>::elem = vector_detail::forward_at_c<I>(static_cast<Sequence&&>(seq))), 0)..., 0 };
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
(void)nofold;
|
||||||
void
|
#endif
|
||||||
assign(Sequence&&, detail::index_sequence<>) {}
|
|
||||||
|
|
||||||
template <typename Sequence, std::size_t N, std::size_t ...M>
|
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
void
|
|
||||||
assign(Sequence&& seq, detail::index_sequence<N, M...>)
|
|
||||||
{
|
|
||||||
at_impl(mpl::int_<N>()) = vector_detail::forward_at_c<N>(seq);
|
|
||||||
assign(std::forward<Sequence>(seq), detail::index_sequence<M...>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <std::size_t N, typename U>
|
template <std::size_t N, typename U>
|
||||||
|
Reference in New Issue
Block a user