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ę?