如何在C ++ 98中实现作用域枚举,并且可以像C ++ 11中的enum类一样使用?

问题描述 投票:1回答:1

在C ++ 11中,我们定义了枚举的作用域,我们可以如下使用它。

#include <iostream>
enum class Color
{
    RED,
    BLUE,
};
int main()
{
    Color color = Color::RED;
    if (color == Color::RED)
    {
        std::cout << "red" << std::endl;
    }
    return 0;
}

我已经在我的项目中的任何地方都使用了范围枚举。

现在我必须移至C ++ 98,因此不能再使用作用域枚举。

我如何在C ++ 98中实现一个有作用域的枚举,并像在C ++ 11中那样使用它?

如果实现技术复杂,我们可以将其提取到模板中吗?

关注链接已经讨论了一些技术,但是不像C ++ 11那样简单。

How to use enums in C++

例如:

namespace Color
{
enum MyColor
{
    RED,
    BLUE,
};
}

感谢您的时间。

c++ c++11 c++98
1个回答
2
投票

在C ++ 11之前模拟作用域枚举的一种常见方法是在类声明中声明非作用域枚举:

© www.soinside.com 2019 - 2024. All rights reserved.