Gotchas szablonów C ++

właśnie teraz musiałem przekopać się w witrynie, aby dowiedzieć się, dlaczego funkcja szablonu szablonu klasy dawała błędy składniowe:

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

Teraz zdaję sobie sprawę, że nawiasy szablonowe są traktowane jako operatory relacyjne. Aby zrobić to, co było zamierzone, potrzebna jest następująca dziwna składnia, porSzablony: funkcja szablonu nie działa dobrze z funkcją członka szablonu klasy:

f.template bar<T>();

jakie inne dziwne aspekty i szablony C ++ / C ++, które napotkałeś, nie były czymś, co uważałeśby za powszechną wiedzę?

questionAnswers(4)

yourAnswerToTheQuestion