Я думаю, что перечисления с ограниченной областью действия слишком ограничительны, поэтому я всегда использовал этот метод, но сегодня я обнаружил, что он приводит к загрязнению имен в 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
Мобильная версия