我的 C++ 代码中有以下检查:
if (not obj.someBoolean) {
// some code
} else {
// some other code
}
打印语句或 gdb 确认obj.someBoolean
(bool
变量)是false
.
然而,在使用操作员时,控件进入了else
块not
。
有趣的是,!
当在上述场景中使用时(进入if
块),各种运算符都能正常工作。
这是我使用方式的问题not
吗?
更新(有关该场景的更多详细信息):
在整个代码中,我not
在很多地方都使用过。但这是(始终如一地)出现此问题的一种情况。
甚至以下代码也有效(if
阻塞):
bool temp = not obj.someBoolean;
if (temp) {
// some code
} else {
// some other code
}
这更像是它发生的单个随机点。
我很好奇为什么会导致这种行为。