Возможно ли сделать nested enum c/c++?

Да, в языках C и C++ можно создавать вложенные (nested) перечисления (enum). Вложенное перечисление описывается внутри области видимости класса или структуры, что позволяет логически сгруппировать его с основным типом данных.

Давайте рассмотрим пример вложенного перечисления в C++:

#include <iostream>

class MyClass {
public:
    enum class InnerEnum {
        Value1,
        Value2,
        Value3
    };
};

int main() {
    MyClass::InnerEnum var = MyClass::InnerEnum::Value2;

    if (var == MyClass::InnerEnum::Value2) {
        std::cout << "Var is Value2." << std::endl;
    }

    return 0;
}

В данном примере у класса MyClass есть вложенное перечисление InnerEnum с элементами Value1, Value2, Value3. Обратиться к элементам такого перечисления можно через оператор разрешения области видимости ::.

Таким образом, в C++ можно использовать вложенные перечисления для создания более структурированного кода и уменьшения глобального пространства имен.