我只是好奇一个枚举类是否可以是最终的......因为编译器给我矛盾的结果。C++中的最终枚举类11
考虑代码:
#include <iostream>
enum class some_enums final : char
{
a = 'a',
b = 'b',
c = 'c'
};
int main()
{
some_enums aa = some_enums::a;
std::cout << "aa=" << static_cast<char>(aa) << std::endl;
}
与Visual Studio编译这个2015编译器(http://rextester.com/l/cpp_online_compiler_visual)的作品......然而铿锵编译它(http://rextester.com/l/cpp_online_compiler_clang)给我一个错误:
source_file.cpp:3:30: error: expected ';' after top level declarator
enum class some_enums final : char
我没有看到标准中任何地方的最终枚举类的痕迹,所以我将功劳归于铿锵...然而为什么Visual Studio在这种情况下接受它,尽管它在MSDN中没有提到(https://msdn.microsoft.com/en-us/library/2dzy4k6e.aspx)?
“enum”对枚举有什么影响? – bolov
[enum class](https://msdn.microsoft.com/en-us/library/a6cskb49.aspx)文档没有提及它。我怀疑这是一个编译器错误。 – user2079303
另请注意,在C++中,类不能像'char'这样的内置类型继承。 – Sergey