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?