>>> cat test.cpp
int foo(unsigned x) {
}
int main() {
foo(-1);
return 0;
}
>>> g++ -Wall -Wextra test.cpp
Хочу чтобы компилятор меня посылал когда я пытаюсь передать отрицательное число в unsigned тип неявно вместо того чтобы -1 внезапно становилась 4294967295. Такое поведение ведет к очень плохим багам.
И разрешал мне если я явно попрошу. Те foo(unsigned(-1))