У меня была функция: void foo(bool boolParam = true)
И я изменил его на: void foo(const char* charParam, bool boolParam = true)
Чтобы избежать поиска, я просто скомпилировал код, надеясь, что компилятор выдаст ошибку (или, по крайней мере, предупреждение), в которой функция была вызвана из-за неправильного типа параметра, но вместо этого компилятор молча преобразовал false в NULL
и скомпилировал все без ошибок или предупреждения. Правильно ли это поведение? Я знаю, что false и NULL
равны 0, но я думаю, что компилятор должен дать хотя бы какое-то предупреждающее сообщение...