Comments 13
RAII — про локальность. Если в конструкторе ты допустишь ошибку логики, то этот принцип тебя никак не спасёт от неопределённого поведения.
Думаю эта "фича" относится скорее к линтеру с автоисправлением, а вот в компиляторе ее быть не должно, так как это не стандартное поведение, которое создаст проблему при смене компилятора.
Смена компилятора это гораздо серьезнее чем, скажем, смена ключей оптимизации. Например, разная реализация UB разными компиляторами :)
Что-то я не совсем понял, что вообще собой представляет это InitAll. Это какой-то пост-процессор, который запускается после компилятора? Или это деталь самого компилятора? В пользу первого говорят пассажи про GCC и CLang. Но дальнейшее повествование ведётся так, словно это деталь компилятора. Но если это деталь компилятора, почему бы сразу не сделать так, чтобы компилятор просто выдавал нужное предупреждение для нужного участка кода? Зачем нужны эти пляски с неявным преобразованием кода с отступом от стандартов?
Как мы решаем проблему неинициализированной стековой памяти в Windows