poo*_*per 6 c++ enums gcc c++11
在gcc-4.5下,它打印0,在gcc-4.6下,打印1.
#include <iostream>
enum VenueId: char {};
int
main (int argc, char ** argv)
{
VenueId v = (VenueId)'P';
std::cout << (v=='P') << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
按照标准,VenuedId
具有char
类型作为基本类型,因此v
应该包含炭'P'
,v == 'P'
应产生真.
§7.2枚举声明
每个枚举定义一个与所有其他类型不同的类型.每个枚举也有一个基础类型.可以使用enum-base明确指定基础类型 ; 如果未明确指定,则作用域枚举类型的基础类型为int.在这些情况下,据说基础类型是固定的.在num-specifier的右括号之后,每个枚举器都具有其枚举的类型.