Sì, deve essere istanziato; doublestruct
è un membro dell'istanza, quindi, se non si dispone di un'istanza, non si dispone di doublestruct
.
[C++11: 14.7.1]:
A meno che un modello di classe di specializzazione è stato esplicitamente istanziato (14.7.2) o esplicitamente specializzata (14.7.3), la specializzazione modello di classe è implicitamente un'istanza quando la specializzazione viene fatto riferimento in un contesto che richiede un completely- tipo di oggetto definito o quando la completezza del tipo di classe influenza la semantica del programma. [..]
In particolare, si consideri l'effetto potenziale di specializzazioni di mystruct
che possono non contenere un membro doublestruct
, o possono contenere uno che non è un tipo.
fonte
2015-04-17 11:11:01
Non ha utilizzato il tipo "T" nel modello. Cosa stai cercando di ottenere con questo modello? –
@MykhayloKopytonenko: È un esempio forzato. Un ottimo banco di prova, in realtà. Sta chiedendo se un modello viene istanziato quando è denominato solo per nominare un tipo di membro [non dipendente] dichiarato al suo interno. –