В стандарте указано, «Член класса T не может использовать T как его имя, если член является статическим членом данных, членом-членом, типом-членом, шаблоном-членом, перечислителем из неперечисленного перечисления, член анонимного объединения членов. Однако нестатический член данных может использовать имя T, если нет конструкторов, объявленных пользователем. "член данных с именем класса
Однако, если я создам этот класс, он дает ошибку компиляции.
class G
{
int G;
};
Я пользуюсь VS2013. Не разрешено ли в Microsoft или?
Что такое ошибка компиляции? Это работает с Clang и GCC. – Hamdor
Компиляторы microsoft (in) известны тем, что не соответствуют стандарту любого типа. –
ошибка: C2380: тип (ы), предшествующий 'G' (конструктор с типом возвращаемого значения или незаконное переопределение текущего имени класса?) Итак, они этого не позволяют :( –