今天在编写一些Visual C++代码时,我遇到了一些令人惊讶的事情。似乎C++支持对bool类型使用++(增量),但不支持--(减量)。这只是一个随机决定,还是背后有一些原因?
以下代码可以编译通过:
static HMODULE hMod = NULL;
static bool once = false;
if (!once++)
hMod = LoadLibrary("xxx");
这个不行:
static HMODULE hMod = NULL;
static bool once = true;
if (once--)
hMod = LoadLibrary("xxx");
++once
和once++
可以在gcc中使用,但是递减操作不能。 - Justin Ardinibool
类型的前置递增运算符已被弃用。来源。 - coglestd::exchange(once,false)
(注意:不是原子操作)。 - golvok