【发布时间】:2018-01-28 14:17:23
【问题描述】:
我试图理解 C++ 标准(ISO/IEC 14882:2003,较新的版本基本相同)的以下摘录:
5.16 条件运算符
2 如果第二个或第三个操作数的类型(可能是 cv 限定的)void,则左值到右值 (4.1)、数组到指针 (4.2) 和函数到指针 (4.3) 标准转换在第二个执行 和第三个操作数,...
我倾向于认为在这种情况下,当操作数是函数调用时,操作数的类型被认为是(尽管不是)函数返回类型。如果是这样,那么就会产生一个 void 类型的示例。
我还认为,在这种情况下,也可以推测 throw 表达式具有 void 类型,与 throw 操作数的类型无关。那将是另一个例子。
我的两个假设对吗?还有其他情况吗?
非常感谢
【问题讨论】:
标签: c++ void conditional-operator