在命名空间中使用枚举
Using enum in namespace
我在代码中使用命名空间中的枚举
namespace Statusss
{
enum Statuss
{
Out = -1,
Ok = 0,
Busy = 1,
Error = 2,
Nor = 3
};
}
void tst()
{
int status =0;
Statusss::Statuss mystatus = static_cast<Statusss::Statuss>(status);
if (mystatus == (Statusss::Statuss::Ok))
{
std::cout << "Okn";
} else std::cout << "Othern";
}
它在简单的控制台应用程序中工作正常。但是如果我将此代码放在 GUI Qt 小部件应用程序中,则会出现错误:
'Statusss::Statuss' is not a class or namespace
if (mystatus == (Statusss::Statuss::Ok))
^
为什么我会得到这个?
该符号的正确名称是
Statusss::Ok
在传统的 C 样式枚举中,如您在此处显示的枚举,枚举类型不是作用域的一部分。
相关文章:
- 如何公开库的枚举,以便我的代码不必键入整个命名空间来使用该枚举?
- 如何理解c++中在命名空间内部定义的枚举类型enum
- C++-使用来自不同头文件、相同命名空间的枚举
- 访问向量字段的键 - 枚举类还是命名空间中的枚举?
- 枚举类不是类或命名空间
- 在命名空间中使用枚举
- 枚举、类、命名空间和长名称
- 解决枚举命名问题 - Qt
- C++11 枚举类命名空间块
- 类名和枚举值之间的冲突:无需命名空间即可解析
- 命名空间中的doxygen枚举
- 在不膨胀命名空间的情况下在C++中声明枚举的好方法
- 将C++命名空间枚举包装到C接口
- 在类中映射命名空间枚举
- 不是创建模板类后的类、命名空间或枚举
- 不同文件中同一命名空间中的 2 个不同枚举中的相同标识符
- 或命名空间中的枚举
- is_error_code_enum<>枚举必须仅在全局命名空间中定义?
- C++ 定义不同命名空间的枚举
- (C++)不能引用命名空间内的枚举类