C ++ Template Fallstricke

Gerade musste ich die Website durchsuchen, um herauszufinden, warum die Template-Klassen-Template-Member-Funktion Syntaxfehler verursachte:

template<class C> class F00 {
   template<typename T> bar();
};
...
Foo<C> f;
f.bar<T>(); // syntax error here

Mir ist jetzt klar, dass Vorlagenklammern als Vergleichsoperatoren behandelt werden. Um das zu tun, was beabsichtigt war, wird die folgende bizarre Syntax benötigt, vglTemplates: Template-Funktion spielt nicht gut mit der Template-Member-Funktion der Klasse:

f.template bar<T>();

Welche anderen bizarren Aspekte und Details von C ++ / C ++ - Vorlagen, auf die Sie gestoßen sind, würden Sie nicht als allgemein bekannt erachten?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage