如何转发声明枚举?
How to forward declare enums?
在使用枚举器之前,我们是否必须声明枚举类?
如果不是,我们如何转发声明枚举?
以下程序导致编译错误
#include <iostream>
enum class Color;
int main()
{
Color c = Color::Green;
}
enum class Color
{
Red,
Green,
};
编译器:
1>------ Build started: Project: Project1, Configuration: Debug x64 ------
1>Project1.cpp
1>C:UsersAdminsourcerepos2Project1Project1.cpp(6,19): error C2027: use of undefined type 'Color'
1>C:UsersAdminsourcerepos2Project1Project1.cpp(2): message : see declaration of 'Color'
1>C:UsersAdminsourcerepos2Project1Project1.cpp(6,24): error C2065: 'Green': undeclared identifier
1>Done building project "Project1.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
你正在这样做:
不透明枚举声明:定义枚举类型,但不定义其枚举器:在此声明之后,类型是完整的类型,其大小是已知的。
读取枚举 https://en.cppreference.com/w/cpp/language/enum
相关文章:
- 访问在 C++ 结构中声明的枚举变量
- 如何使用默认值将枚举声明为 extern
- 如何转发声明枚举?
- 如何将枚举类转发声明为模板化类的内部类?
- 枚举前向声明与头文件
- C++:如何在声明枚举类的模板类主体之外定义枚举类?
- 在C++代码中使用的 C 标头中向前声明枚举
- 在哪里声明枚举
- 在模板参数内向前声明枚举类
- 在C++14中,在哪个作用域中声明了重新声明枚举的非范围枚举器
- 在C中定义的C++中正向声明枚举
- 在不膨胀命名空间的情况下在C++中声明枚举的好方法
- 声明枚举标识符的基础类型
- 为什么在向前声明枚举时必须提供枚举的大小?
- 前向声明枚举类不起作用
- 在运行时有条件地声明枚举(C++)
- 我可以传递前向声明枚举的值吗?
- c++ -对声明枚举感到困惑
- c++:在类内部从外部声明枚举器,以便可以在私有成员中使用
- 在声明枚举之前使用它