C++中的双重否定 [英] Double Negation in C++

查看:27
本文介绍了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++中的双重否定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆