Дано:
template <typename T>
class C {
C & operator ++ () { ... }
};
Почему / как C
разрешено объявлять переменные и функции типа C
вместо того, чтобы называть C
? Я не особо задумывался об этом, прежде чем работал над шаблоном со многими параметрами, которые делали бы определение «самотипа» неудобным.
Есть ли какие-нибудь причуды в этом, о которых я должен знать?