在 C++11 中,类型说明符包括类说明符和枚举说明符。(又名类定义和枚举定义)
根据语法/语法 - 类型说明符可以出现在语言中的多个位置,但并非在所有这些地方都允许使用类说明符和枚举说明符。
例如:
struct C{} c;
// ok: types may be defined in the specifiers of a simple declaration
void f(struct S{});
// error: types may not be defined in parameter types
constexpr auto i = sizeof(enum E{});
// error: types may not be defined in ‘sizeof’ expressions
它在标准中的什么地方将类型说明符的这些用途划分为可以定义和不可以定义类型的那些用途?例如,在 sizeof 表达式中不能定义类型的规则在哪里?