gpt4 book ai didi

c++ - 常量表达式中的条件运算符

转载 作者:太空狗 更新时间:2023-10-29 20:27:24 24 4
gpt4 key购买 nike

我在 MSVC 10 中尝试了以下代码片段,它工作正常。

enum
{
FOO = (sizeof(void*) == 8 ? 10 : 20)
};

int main()
{
return FOO;
}

我想知道的是:当所有操作数都是常量表达式时,C++ 标准(最好是 C++98)是否允许我在常量表达式中使用条件运算符,或者这是 Microsoft 的怪癖/扩展?

最佳答案

这是完全有效且合理的标准 C++。

三元条件运算符构成一个表达式,如果它的操作数是,则该表达式是一个常量表达式。

标准引用是 C++11 5.19/2:

A conditional-expression is a core constant expression [...]

请注意,到 5.16 为止,三元条件表达式是一种条件表达式。其他类型是 2 == 3

关于c++ - 常量表达式中的条件运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com