gpt4 book ai didi

c++ - 使用单词变体 C++ not 运算符时出现奇怪的错误

转载 作者:太空狗 更新时间:2023-10-29 21:25:51 26 4
gpt4 key购买 nike

我的 C++ 代码中有以下检查:

if (not obj.someBoolean) {
// some code
} else {
// some other code
}

打印语句或 gdb 确认 obj.someBoolean(一个 bool 变量)为 false
然而,在使用 not 运算符时,控制转到了 else block 。

有趣的是,! 运算符的变体在上述场景中使用时可以正常工作(进入 if block )。

这是我使用的方式的问题吗?

更新(场景的更多细节):

在整个代码中,我在很多地方都使用了not。但这是(一致)出现此问题的一种情况。

即使是下面的代码也能工作(转到 if block ):

bool temp = not obj.someBoolean;
if (temp) {
// some code
} else {
// some other code
}

这更像是它发生的一个随机点。
我很好奇为什么会导致这种行为。

最佳答案

我几乎完全在 C++ 中使用 notandor(我发现它们比它们的 sigils 对应物更具可读性和更不容易出错) .它们严格是等价的。

§2.6 Alternative tokens [lex.digraph]

1/ Alternative token representations are provided for some operators and punctuators.

2/ In all respects of the language, each alternative token behaves the same, respectively, as its primary token, except for its spelling. The set of alternative tokens is defined in Table 2.

看看别处。

关于c++ - 使用单词变体 C++ not 运算符时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269513/

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