Является ли следующий код на C++ корректным? И если да, то может ли кто-нибудь указать мне на параграф в стандарте, где об этом говорится? Кажется, что можно использовать template-name вместо template-id в области видимости, заключенной в template, и компилятор автоматически добавит список аргументов шаблона.
template<class Type>
class Mana {
public:
Mana(const Mana& m) {/*...*/}
Mana() {/*...*/}
};
в отличие от:
template<class Type>
class Mana {
public:
Mana(const Mana<Type>& m) {/*...*/}
Mana() {/*...*/}
};
Код компилируется как в g++, так и в MS visual studio.