Given:
template <typename T>
class C {
C & operator ++ () { ... }
};
Why/how is C allowed to declare variables and functions of type C rather than being required to name C<T>? I had not really thought about it before working on a template with many parameters that would make spelling out the “self type” inconvenient.
Are there any quirks of this I should know about?
Ostensibly, it’s merely a convenience feature.