C ++" var foo = !! :: bar()"句法 ?

时间:2017-04-24 09:59:00

标签: c++ syntax cwnd

寻找关于如何使用HWND窗口进入全屏模式的一些解释,我发现此响应Win32: full-screen and hiding taskbar

铬响应代码有这一行:

saved_window_info_.maximized = !!::IsZoomed(hwnd_);

来自第56行的https://src.chromium.org/viewvc/chrome/trunk/src/ui/views/win/fullscreen_handler.cc?revision=HEAD&view=markup文件

我看了:

var bar equal not not of mother method

这是对的吗?

这是什么" !! :: IsZoomed()"是什么意思?

为什么不

saved_window_info_.maximized = CWnd::IsZoomed(hwnd_);

1 个答案:

答案 0 :(得分:10)

!!只是!!,两个否定。双重否定减少到noop,但它将值转换为bool。因此,请考虑(bool)的替代语法。它的优点是:

  1. 它在C中工作,在C89中没有单独的bool类型(强制值为0或1)和
  2. MSC ++不像(bool)那样为它生成愚蠢的“性能警告”。
  3. 其余的只是::IsZoomed,即来自顶级命名空间的函数IsZoomed