2013-04-30 11 views
7

Ho un modello di alias, definita con la direttiva using:avanti dichiarare un alias di template

template<typename A> 
using T=TC<decltype(A::b),decltype(A::c)>; 

Fa C++ 11 offrono un meccanismo di trasmettere dichiarare questo modello alias T?

Ho provato:

template<typename> struct T; 

e:

template<typename> 
using T; 

ma entrambe errori di compilatore di ritorno ("conflitto con precedente dichiarazione"). Sto usando gcc 4.8.

Qual è la sintassi per farlo funzionare?

risposta

9

No, non è possibile.

Che cosa si vuole fare è dichiarare avanti TC, quindi definire T immediatamente al di sotto di esso.

template<typename T, typename U> 
struct TC; 

template<typename A> 
using T=TC<decltype(A::b),decltype(A::c)>; 
+0

Questo è ciò di cui avevo paura. Darò ancora qualche minuto alla domanda nella speranza di un'altra risposta, e probabilmente accetterò questa risposta dopo. – mirk

Problemi correlati