Предположим, у нас есть что-то enum
вроде следующего:
enum Days {Saturday, Sunday, Tuesday, Wednesday, Thursday, Friday};
Я хочу создать экземпляр этого enum
и инициализировать его с надлежащим значением, поэтому я делаю:
Days day = Days.Saturday;
Теперь я хочу проверить мою переменную или экземпляр с существующим enum
значением, поэтому я делаю:
if (day == Days.Saturday)
{
std::cout << "Ok its Saturday";
}
Что дает мне ошибку компиляции:
ошибка: ожидаемое первичное выражение перед '.' знак
Итак, чтобы было ясно, в чем разница между высказыванием:
if (day == Days.Saturday) // Causes compilation error
и
if (day == Saturday)
?
Что эти два на самом деле ссылаются, в том, что один в порядке, а другой вызывает ошибку компиляции?