PDA

Visualizza la versione completa : [c++] parametro template template?


giuseppe500
17-09-2012, 17:26
ciao.
Adesso ho tralasciando i dettagl una funzione templatizzata come segue:


template<class T, class U, class Y, class O>
class CXXX
{

}

e istanzio la classe con : CXX < int, double, string, string> , si fa un po fatica a far capire che i primi due paramentri sono relativi a un caso e i secondi due ad un altro caso.
mi servirebbe poter accorpare i primi due(T e U) e i secondi due(Y e O) in un unico parametro.
del tipo:


termplate< classe x<T, U> , classe x<Y, O> > el
CXXX
{
}

e istanzio con :
CXXX< x<int, double>, x <string, string> el
possibile?
se si come accedo dal parametro composito(che un tipo) al suo parametro interno?
il caso di usare i template template parameter?
oppure?
grazie.

shodan
17-09-2012, 18:48
Originariamente inviato da giuseppe500
possibile?

No. E' sempre obbligatorio indicare ogni parametro template.
Puoi comunque fare:


template <class X, class Y>
struct data_types {
typedef X type1;
typedef Y type2;

};

template <class X, class Y>
struct UseTypes {
typedef typename X::type1 type1;
typedef typename X::type2 type2;
typedef typename Y::type1 type3;
typedef typename Y::type2 type4;
};

UseTypes<data_types<int,char>,data_type<long,double>> foo;

Loading