오늘 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와 업무가 아니라 감소합니다.
std::exchange(once,false)
: (주 하지 당신이 뭔가 비 사용되지 원하는 경우, 원자).