Double Negation in C++(C++中的双重否定)
问题描述
我刚刚加入了一个拥有非常庞大的代码库的项目.
I just came onto a project with a pretty huge code base.
我主要处理 C++ 并且他们编写的许多代码都使用双重否定作为布尔逻辑.
I'm mostly dealing with C++ and a lot of the code they write uses double negation for their boolean logic.
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
我知道这些人是聪明的程序员,很明显他们这样做并不是偶然的.
I know these guys are intelligent programmers, it's obvious they aren't doing this by accident.
我不是经验丰富的 C++ 专家,我对他们为什么这样做的唯一猜测是他们想要绝对肯定被评估的值是实际的布尔表示.所以他们否定它,然后再次否定它以使其回到它的实际布尔值.
I'm no seasoned C++ expert, my only guess at why they are doing this is that they want to make absolutely positive that the value being evaluated is the actual boolean representation. So they negate it, then negate that again to get it back to its actual boolean value.
这是正确的,还是我遗漏了什么?
Is this correct, or am I missing something?
推荐答案
转bool是个技巧.
这篇关于C++中的双重否定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:C++中的双重否定
基础教程推荐
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 从 std::cin 读取密码 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01