Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 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; }
根据标准,VenuedId将chartype 作为基础 type,因此v应该包含 char 'P',v == 'P'应该产生true。
VenuedId
char
v
'P'
v == 'P'
§ 7.2 枚举声明
每个枚举都定义了一个不同于所有其他类型的类型。每个枚举也有一个基础类型。可以使用 enum-base 显式指定基础类型;如果未明确指定,则作用域枚举类型的基础类型是 int。在这些情况下,基础类型被称为是固定的。在数字说明符的右大括号之后,每个枚举器都有其枚举的类型。