Оператор разрешения области видимости на перечислениях определенное для компилятора расширение?

В идеале вы должны добавить разделители каталогов, чтобы избежать этих проблем:

if (strpos($dir, "/ComputerScience/") !== FALSE) {
}
if (strpos($dir, "/Science/") !== FALSE) {
}

Замените / фактическим разделителем каталогов для вашей файловой системы (\ или /).

7
задан Community 23 May 2017 в 12:23
поделиться

4 ответа

Я попробовал следующий код:

enum test
{
    t1, t2, t3
};

void main() 
{
    test t = test::t1;
}

Visual C++ 9 скомпилировал его с соблюдающим предупреждением:

предупреждение C4482: нестандартное расширение использовало: перечислимый 'тест' используется на полностью определенное имя

Не похож это стандартно.

8
ответ дан 6 December 2019 в 09:23
поделиться

Это не стандартно.

В C++ 11, Вы сможете сделать ограниченные по объему перечисления с объявлением класса Enum.

С предC++ 11 компиляторов, для обзора перечисления необходимо будет определить перечисление в структуре или пространстве имен.

8
ответ дан 6 December 2019 в 09:23
поделиться

В стандартном C++, вещах слева от "::" должен быть класс или пространство имен, перечисления не рассчитывают.

3
ответ дан 6 December 2019 в 09:23
поделиться

Что можно сделать для двигений, это должно создать пространство имен, это - то же имя как перечисление. Это эффективно добавит перечислимые величины в их собственный объем, и можно использовать название перечисления/пространства имен, чтобы относиться к ним. Конечно, это только работает на перечисления, которые иначе существовали бы в глобальном (или другое пространство имен) объем.

Существует также статья об этой проблеме где-нибудь.

0
ответ дан 6 December 2019 в 09:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: