范围枚举的详细类型说明符不得使用'class'关键字

Dre*_*kes 31 c++ g++ c++11 enum-class g++4.8

我有以下枚举规范:

enum class FaceDirection : int8
{
  Down,
  Up
};
Run Code Online (Sandbox Code Playgroud)

g ++ 4.8.1给出以下错误:

警告:scoped枚举的elaborated-type-specifier不能使用'class'关键字

是什么导致这个?

Dre*_*kes 35

检查enum class从派生中派生的类型.在这种情况下,没有指定typedef int8.

  • 我在这里发布了这个问题/答案组合,因为谷歌在错误消息上很少见.希望这有助于某人. (8认同)
  • 感谢上帝这个答案,正在撕扯我的头发.这样一个可怕的错误信息. (5认同)
  • `#include <cstdint>` 为我做了 (4认同)
  • 还是有帮助的!在确定与“std::ptrdiff_t”的范围枚举相关的答案时忘记包含“<cstddef>”,这节省了我一段时间^_^ (2认同)