【发布时间】:2021-05-02 22:09:49
【问题描述】:
这段代码:
bool b = isTrue;
isTrue = false;
将旧的isTrue 值保存为b,然后将isTrue 设置为false。一切都很好,但是有没有办法在一行中执行此操作?最后我想实现这个:
bool b = isTrue ? /* assign true and flip `isTrue` value to false */ : false;
【问题讨论】:
-
为什么需要一行?编译器会翻译成最优化的代码,
-
您的最后一行代码似乎与最初的要求相矛盾——如果
isTrue以 false 开头,那么: false不会尝试翻转isTrue -
@M.M 是的,我只想将
true的情况翻转为false并保留false的情况。使用三元运算符,我(不幸的是)需要将它们全部写在一行中 -
但是您在帖子开始时说在所有情况下都应该使用
isTrue = !isTrue;。请编辑帖子以澄清。也许你真正想要的是bool b = isTrue; isTrue = false;? -
@M.M 是的,正确的。我想要那个...
标签: c++ boolean conditional-operator