Merge pull request #200 from Kojoley/simplify-vector-assign_sequence

vector: Simplify assign_sequence
This commit is contained in:
Joel de Guzman
2021-09-04 14:16:30 +08:00
committed by GitHub

View File

@ -220,21 +220,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...>());
} }
private: private: