Kann nicht auf einen Vorlagennamen verweisen, der in einem Vorlagenparameter verschachtelt ist

8

Ich habe den folgenden Code:

%Vor%

Wo ich im Grunde versuche, ein Template-Klassenmitglied 'Data' einer 'Provider'-Klasse zu verwenden, angewendet auf' int ', aber ich bekomme folgende Fehler:

%Vor%

Ich verwende GCC 4.3.3 auf einem Solaris-System.

    
chila 18.05.2010, 19:25
quelle

2 Antworten

16
%Vor%

Das Problem ist, dass, wenn der Compiler use() zum ersten Mal analysiert, Provider nicht weiß, also nicht weiß, worauf sich Provider::Data bezieht. Es könnte ein statisches Datenelement, der Name einer Elementfunktion oder etwas anderes sein. Deshalb müssen Sie typename eingeben.
Das zusätzliche template ist immer dann erforderlich, wenn der verschachtelte Name der Name einer Vorlage ist. Wenn es etwas anderes ist, dann könnte Data < ... ein Vergleich sein.

    
sbi 18.05.2010, 19:29
quelle
8

Sie benötigen ein typename und ein template :

%Vor%     
James McNellis 18.05.2010 19:30
quelle

Tags und Links