Boost logo

Boost :

Subject: Re: [boost] [review][mp11] Formal review of Mp11
From: Joaquin M López Muñoz (joaquinlopezmunoz_at_[hidden])
Date: 2017-07-18 07:58:19

El 17/07/2017 a las 23:03, Peter Dimov via Boost escribió:
> Joaquin M López Muñoz wrote:
>> Something more generic can be provided
>> [...]
>> template<typename MplSequence>
>> using mp_mpl_sequence=typename
>> mp_mpl_sequence_impl<MplSequence>::type;
> How about we provide it in MPL instead?
> namespace mpl {
> template<class Seq, template<class...> class L = std::tuple> using
> to_tuple = /*as above*/
> }
> to_tuple subject to bikeshedding (to_variadic? as_variadic_sequence?).

Well, I guess users don't care where the utility belongs as long as it's
documented and available
somewhere. If you want to integrate with MPL nicely, this probably
should take the form of a
variadic sequence inserter
( ).
Something like:

   struct variadic_inserter_op
     template<template<typename...> class L,typename... Ts,typename T>
     static L<Ts...,T> helper(L<Ts...>,T);

     template<typename L,typename T>
     struct apply
       using type=decltype(helper(std::declval<L>(),std::declval<T>()));

   template<template <typename...> class L>

   template<class Seq,template<typename...> class L=std::tuple>
   using to_variadic_sequence=boost::mpl::copy<Seq,variadic_inserter<L>>;

Note that this would be the only C++11 piece of code in Boost.MPL.

Joaquín M López Muñoz

Boost list run by bdawes at, gregod at, cpdaniel at, john at