我有一个变量声明为:
enum class FooEnum: uint64_t {}
Run Code Online (Sandbox Code Playgroud)
我想转换为它的基类型,但我不想硬编码基类型.例如,像这样:
FooEnum myEnum;
uint64_t * intPointer = (underlying_typeof(myEnum))&myEnum;
Run Code Online (Sandbox Code Playgroud)
这可能吗?
您可以使用typedef使Color枚举类型可访问,而不指定它的"全名".
Run Code Online (Sandbox Code Playgroud)typedef Sample::Colour Colour; Colour c = Colour::BLUE;
这听起来对我来说是正确的,但有人对它进行了投票并留下了这个评论:
在枚举上使用范围解析运算符::(在"Color :: BLUE"中)是特定于编译器的扩展,而不是标准C++
真的吗?我相信我已经在MSVC和GCC上都使用了它,尽管我不确定.