Wie verwende ich Templates, um Aliase mit 'using' zu erstellen (um parametrisierte Aliase zu machen) in C ++?

7

Ich lese gerade Bjarne Stroustrups "Die C ++ Programmiersprache" 4. Ausgabe. In den ersten Teilen des Buches fand ich eine Verwendung von using wie folgt:

%Vor%
  

* Siehe [**] für vollständige Programm- und Fehlermeldung *

Das ist genau das, was ich auf der Seite 105 gefunden habe. Als ich dies in ein komplettes Programm umwandelte und versuchte es zu kompilieren, gab mir g++ diese Fehlermeldung:

%Vor%

Ich kann in diesem Code kein Problem finden, ( Ich bin neu in C ++, ich kann das Problem mit meinem kleinen Wissen nicht finden ) (Verwirrender fand ich das auf Bjarnes Buch )

  

Könnte mir jemand sagen, warum macht dieser Code einen Fehler?

     

HINWEIS: Wenn ich jedoch Iterator<C> durch typename C::iterator ersetzt habe (siehe unten), funktioniert es gut, es gibt keinen Fehler!

[**] Vollständiges Programm und Fehlermeldung:

%Vor%

FEHLERMELDUNG:

%Vor%     
0xEDD1E 13.03.2016, 06:57
quelle

2 Antworten

12

Der erste <T> muss weggelassen werden

%Vor%     
user2807083 13.03.2016, 07:01
quelle
6

Wenn Sie eine Klassenvorlage oder Funktionsvorlage definieren, verwenden Sie:

%Vor%

Sie verwenden Foo<T> oder bar<T> nicht beim Definieren der Vorlagen.

Wenn Sie Vorlagen zum Definieren eines Alias ​​verwenden, müssen Sie Folgendes verwenden:

%Vor%     
R Sahu 13.03.2016 07:09
quelle

Tags und Links