В С++, если перечисление, объявленное в пространстве имен, определено за пределами пространства имен, является ли его знC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 В С++, если перечисление, объявленное в пространстве имен, определено за пределами пространства имен, является ли его зн

Сообщение Anonymous »

Я считаю, что перечисления с областью действия слишком ограничительны, поэтому я всегда использовал этот метод, но сегодня я обнаружил, что он приводит к загрязнению имен в CLANG. Итак, что же стандарт говорит о видимости?namespace E1_space{
enum E1:int;
}
using E1 = E1_space::E1;//or using E1_space::E1;
enum E1_space::E1:int{
Error
};

void foo()
{
Error;
//x86-64 GCC 14.2 error: 'Error' was not declared in this scope; did you mean 'P3::E1_space::Error'?
//x64 MSVC v19.latest error C2065: 'Error': undeclared identifier
//x86-64 CLANG 19.1.0 warning: expression result unused
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... space-is-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»