Stavo sperimentando con C++ 0x modelli variadic quando sono incappato in questo problema:È possibile "archiviare" un pacchetto di parametri del modello senza espanderlo?
template < typename ...Args >
struct identities
{
typedef Args type; //compile error: "parameter packs not expanded with '...'
};
//The following code just shows an example of potential use, but has no relation
//with what I am actually trying to achieve.
template < typename T >
struct convert_in_tuple
{
typedef std::tuple< typename T::type... > type;
};
typedef convert_in_tuple< identities< int, float > >::type int_float_tuple;
GCC 4.5.0 mi dà un errore quando provo a typedef il pacco parametri di modello.
In sostanza, mi piacerebbe "memorizzare" il pacchetto di parametri in un typedef, senza decomprimerlo. È possibile? Se no, c'è qualche ragione per cui questo non è permesso?
Bello, molto simile a quello provato in origine dall'OP. –
Soluzione eccellente, non ho pensato di utilizzare la specializzazione parziale dei modelli! –
@GMan: domanda veloce ...questo è stato utile, ma deve la versione parzialmente specializzata in realtà essere 'typedef typename convert_in_tuple tipo :: tipo;', o se questo non ha importanza? –
Jason