我试图理解C++标准(ISO/IEC 14882:2003,更新版本基本相同)中的以下摘录:
5.16 条件运算符
2 如果第二个或第三个操作数具有类型(可能带有cv限定符)void,则对第二个和第三个操作数执行左值到右值(4.1)、数组到指针(4.2)和函数到指针(4.3)标准转换...
在这种情况下,我倾向于认为,当操作数是函数调用时,操作数的类型被视为(虽然不是)函数返回类型。如果是这样,那么这就产生了一个void类型的示例。
我还想象,在这种情况下,抛出表达式也可以被认为是具有void类型,与抛出操作数的类型无关。那将是另一个例子。
我的两个假设正确吗?还有其他情况吗? 非常感谢
5.16 条件运算符
2 如果第二个或第三个操作数具有类型(可能带有cv限定符)void,则对第二个和第三个操作数执行左值到右值(4.1)、数组到指针(4.2)和函数到指针(4.3)标准转换...
在这种情况下,我倾向于认为,当操作数是函数调用时,操作数的类型被视为(虽然不是)函数返回类型。如果是这样,那么这就产生了一个void类型的示例。
我还想象,在这种情况下,抛出表达式也可以被认为是具有void类型,与抛出操作数的类型无关。那将是另一个例子。
我的两个假设正确吗?还有其他情况吗? 非常感谢