gpt4 book ai didi

c++ - A if A else B 但只对 A 求值一次

转载 作者:行者123 更新时间:2023-12-01 14:04:24 24 4
gpt4 key购买 nike

有没有什么方便的方法来写表达式

val = A ? A : B;

其中 A 只会被评估一次?或者这是最好的(它只是丑陋):
auto const& temp = A;
val = temp ? temp : B;

澄清一下,A 和 B 不是 bool 类型的

最佳答案

使用 Elvis operator ,在某些 C++ 编译器中受支持:

val = A ?: B;

Conditionals with Omitted Operands在 gcc 的文档中。

编辑:这不是可移植的,例如在 MSVC 中不起作用。它从 2.95.3(2001 年 3 月)开始在 gcc 中工作,从 3.0.0 开始在 clang 上工作。

关于c++ - A if A else B 但只对 A 求值一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375558/

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