c/c++语言开发共享常量表达式中的条件运算符

我尝试使用MSVC 10的以下代码片段,它可以正常工作。

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

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

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

    三元条件运算符形成表达式 ,如果其操作数是表达式 ,则表达式是常量表达式。

    标准参考是C ++ 11 5.19 / 2:

    条件表达式核心常量表达式 […]

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

      以上就是c/c++开发分享常量表达式中的条件运算符相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/541665.html

      (0)
      上一篇 2021年1月3日
      下一篇 2021年1月3日

      精彩推荐