Если перечисление, объявленное в пространстве имен, определено вне этого пространства имен, видимы ли его значения переч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 ... re-its-enu
Ответить

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

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

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

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

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