В идеале вы должны добавить разделители каталогов, чтобы избежать этих проблем:
if (strpos($dir, "/ComputerScience/") !== FALSE) {
}
if (strpos($dir, "/Science/") !== FALSE) {
}
Замените /
фактическим разделителем каталогов для вашей файловой системы (\
или /
).
Я попробовал следующий код:
enum test
{
t1, t2, t3
};
void main()
{
test t = test::t1;
}
Visual C++ 9 скомпилировал его с соблюдающим предупреждением:
предупреждение C4482: нестандартное расширение использовало: перечислимый 'тест' используется на полностью определенное имя
Не похож это стандартно.
Это не стандартно.
В C++ 11, Вы сможете сделать ограниченные по объему перечисления с объявлением класса Enum.
С предC++ 11 компиляторов, для обзора перечисления необходимо будет определить перечисление в структуре или пространстве имен.
В стандартном C++, вещах слева от "::" должен быть класс или пространство имен, перечисления не рассчитывают.
Что можно сделать для двигений, это должно создать пространство имен, это - то же имя как перечисление. Это эффективно добавит перечислимые величины в их собственный объем, и можно использовать название перечисления/пространства имен, чтобы относиться к ним. Конечно, это только работает на перечисления, которые иначе существовали бы в глобальном (или другое пространство имен) объем.
Существует также статья об этой проблеме где-нибудь.