Pull to refresh

Comments 13

В плюсах проблема неинициализированных указателей разве не решена RAII?

RAII — про локальность. Если в конструкторе ты допустишь ошибку логики, то этот принцип тебя никак не спасёт от неопределённого поведения.

Эм. Что значит UB просто в мозгах? UB не существует? При использовании принципа RAII, но с ошибкой в конструкторе, UB возникнуть не может?

Думаю эта "фича" относится скорее к линтеру с автоисправлением, а вот в компиляторе ее быть не должно, так как это не стандартное поведение, которое создаст проблему при смене компилятора.

Смена компилятора это гораздо серьезнее чем, скажем, смена ключей оптимизации. Например, разная реализация UB разными компиляторами :)

Что-то я не совсем понял, что вообще собой представляет это InitAll. Это какой-то пост-процессор, который запускается после компилятора? Или это деталь самого компилятора? В пользу первого говорят пассажи про GCC и CLang. Но дальнейшее повествование ведётся так, словно это деталь компилятора. Но если это деталь компилятора, почему бы сразу не сделать так, чтобы компилятор просто выдавал нужное предупреждение для нужного участка кода? Зачем нужны эти пляски с неявным преобразованием кода с отступом от стандартов?

InitAll реализован на стороне фронтэнда компилятора.
UFO just landed and posted this here
={0} в действительности может не занулить дырки между полями, появившиеся из-за выравнивания.
UFO just landed and posted this here
Скоро windows будет кушать еще больше оперативы и станет медленнее и с купой новых багов которых раньше не было, с большим числом фанатов(«кодеров»), с необходимостью вставлять volatile bool b = true; ибо сверх оптимизация убирает проверки — вот это будет прям то что надо для полного счастья. Ой сори, счастье будет когда все побегут покупать мега компы. И будет все работать по схеме «баг» + «баг» = «нету бага»
Sign up to leave a comment.

Articles