With such example:
bool Complement( bool x )
{
return ~x;
}
GCC gives a warning if compiling with -Wall: test.cpp:3:10: warning: ‘~’ on an expression of type bool [-Wbool-operation]
return ~x;
So, it's surprise that C++ does this, but ones who enable compiler warnings are not in trouble.