相关疑难解决方法(0)

对于作用域枚举,相当于"使用名称空间X"?

我正在使用一个范围枚举来枚举我正在实现的某个状态机中的状态.例如,让我们说:

enum class CatState
{
    sleeping,
    napping,
    resting
};
Run Code Online (Sandbox Code Playgroud)

在我定义状态转换表的cpp文件中,我想使用等价的东西,using namespace X这样我就不需要为我的所有州名添加前缀CatState::.换句话说,我想用sleeping而不是CatState::sleeping.我的转换表有很多列,因此避免使用CatState::前缀会使事情变得更紧凑和可读.

那么,有没有办法避免一直打字CatState::


是的,是的,我已经意识到了陷阱using namespace.如果有强类型枚举的等价物,我保证只在我的cpp实现文件中的有限范围内使用它,而不是邪恶.

c++ enums c++11

36
推荐指数
3
解决办法
5150
查看次数

使用枚举声明?

使用声明似乎不适用于枚举类型

class Sample{
public:
enum Colour { RED,BLUE,GREEN};
}

using Sample::Colour;
Run Code Online (Sandbox Code Playgroud)

不起作用!! 我们是否需要为枚举类型的每个枚举器添加使用声明?如下

using sample::Colour::RED;
Run Code Online (Sandbox Code Playgroud)

c++ enums using-declaration

7
推荐指数
4
解决办法
7570
查看次数

标签 统计

c++ ×2

enums ×2

c++11 ×1

using-declaration ×1