Envolviendo una secuencia Boost.Fusion

Estoy buscando una manera de crear unBoost.Fusion secuencia de envoltura que es en sí unaFusión secuencia y reenvía todas las 'llamadas' a su secuencia envuelta. Algo en las lineas de

template< typename Sequence >
struct sequence_wrapper
{
    explicit sequence_wrapper( Sequence const& s ) : seq( s ){}

    Sequence seq;
};

dóndesequence_wrapper< Sequence > es unFusión secuencia también, y funciona igual deSequence haría. La razón por la que necesito esto es que tengo varias funciones que operan enFusión secuencias (donde todos los elementos satisfacen algunos requisitos especiales), y me gustaría agregar un poco de sintaxis de azúcar para el que necesito un tipo personalizado para agregar operadores sobrecargados. No necesito el resultado de las operaciones en un sequence_wrapper para devolver un sequence_wrapper también, solo las llamadas relacionadas con la sintaxis de azúcar devolverían una secuencia envuelta (manualmente). Por ejemplo, agregar elementos a una secuencia usando el operador de coma (algo así como unBoost.Asignar paraFusión secuencias):

template< typename Sequence, typename T >
sequence_wrapper<
    typename boost::fusion::result_of::push_back<
        Sequence const&
      , T
    >::type
> operator ,( Sequence const& seq, T const& v )
{
    return
        sequence_wrapper<
            typename boost::fusion::result_of::push_back<
                Sequence const&
              , T
            >::type
        >( boost::fusion::push_back( seq, v ) )
        ;
}

¿Cuál sería la mejor manera de lograr esto (si la biblioteca lo admite)? Estoy particularmente tratando de evitar crear unaFusión secuencia desde cero, ya que me gustaría usar cualquier secuencia devuelta porFusión operaciones Sería herencia + especialización detag_of para devolver la etiqueta de la secuencia envuelta simplemente funciona? ¿O necesitaré definir una etiqueta propia e implementar todas las funciones necesarias para simplemente reenviar la llamada?

Respuestas a la pregunta(1)

Su respuesta a la pregunta