相关疑难解决方法(0)

如何知道类枚举的基础类型?

我有一个变量声明为:

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)

这可能吗?

c++ c++11

29
推荐指数
3
解决办法
9377
查看次数

范围解析运算符枚举编译器特定的扩展?

这个问题上,有一个答案表明:

您可以使用typedef使Color枚举类型可访问,而不指定它的"全名".

typedef Sample::Colour Colour;
Colour c = Colour::BLUE;
Run Code Online (Sandbox Code Playgroud)

这听起来对我来说是正确的,但有人对它进行了投票并留下了这个评论:

在枚举上使用范围解析运算符::(在"Color :: BLUE"中)是特定于编译器的扩展,而不是标准C++

真的吗?我相信我已经在MSVC和GCC上都使用了它,尽管我不确定.

c++ standards

7
推荐指数
3
解决办法
4824
查看次数

标签 统计

c++ ×2

c++11 ×1

standards ×1