Здравствуйте, serg_joker, Вы писали:
_>Допустим, по каким-то очень важным причинам мы не можем настроить проект так, чтобы он был чист с точки зрения предупреждений компилятора и мы просто увидели, что ф-ция может проваливаться в ветку без return. Хотя это само по себе вызывает у меня вопросы к коду и людям, его поддерживающим.
Это может быть опечаткой.
_>, вместо того, чтобы программа упала с криком "чувак, ты налажал!", ф-ция ShouldBackup была просто тождественно равной false? _>И потом отлаживаться сильно дальше, не понимая, какого хрена? Ясно, что в таком плоском примере всё очевидно, но обычно же оно сильно не так.
Лично я, если бы меня спросили, сильно предпочёл бы, чтобы с криком "упал" компилятор.
Хотя, вероятно, он просто вставляет UD2 во все пути, где функция с заявленным возвратом значения может выйти мимо return.
_>Имхо, детерменированно нерабочая программа лучше, чем программа, только похожая на рабочую.
Как говорит один мой знакомый, "программа, которая не работает, с только делает вид, что работает".