Envolvendo um Boost.Fusion Sequence

Eu estou procurando uma maneira de criar umBoost.Fusion wrapper seqüência que é em si umFusão seqüência e encaminha todas as chamadas para sua seqüência Algo nas linhas de

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

    Sequence seq;
};

Ondesequence_wrapper< Sequence > é umFusão sequência, e funciona da mesmaSequence seria. A razão pela qual eu preciso disso é que eu tenho várias funções que operam emFusão seqüências (onde todos os elementos satisfazem alguns requisitos especiais), e gostaria de adicionar um pouco de açúcar de sintaxe para o qual eu preciso de um tipo personalizado para adicionar operadores sobrecarregados. Eu não preciso do resultado de operações em um sequence_wrapper para retornar um sequence_wrapper também, somente as chamadas relacionadas ao açúcar da sintaxe retornariam uma seqüência (manualmente) envolvida. Por exemplo, acrescentar elementos a uma sequência usando o operador vírgula (um tanto quantoBoost.Assign paraFusão seqüências):

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 ) )
        ;
}

Qual seria a melhor maneira de conseguir isso (se é de fato suportado pela biblioteca)? Estou particularmente tentando evitar criar umFusão seqüência do zero, como eu gostaria de usar qualquer seqüência é retornado porFusão operações. Herança + especialização detag_of para retornar a tag da seqüência envolvida apenas funciona? Ou precisarei definir uma tag e implementar todas as funções necessárias para encaminhar a chamada?

questionAnswers(1)

yourAnswerToTheQuestion