Если программа на С++ применяет побитовое, а не оператор (~) к логическому значению, вызывает ли это вызов Undefined Behavior?
например. является ли следующая программа корректной?
bool f = false;
bool f2 = ~f; // is f2 guaranteed to be true, or is this UB?
bool t = true;
bool t2 = ~t; // is t2 guaranteed to be false, or is this UB?
(Да, я знаю, что есть оператор!, который лучше подходит для такого рода вещей, для целей этого вопроса мы будем игнорировать его существование;))