LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Но по факту алгоритм высвобождения через RAII обычно не тестируется, а потому частенько неожиданно переведит программу из одного некорректного состояния в другое некорректное состояние

Я обычно тестирую хотя бы раз весь написанный код. Написать throw в середине кода и посмотреть что будет не сложно. Писать код, который ни разу не исполнялся – ошибочная практика.

Если бы RAII решала все баги на свете, то кодеры на C++ уже были бы самыми счастливыми людьми на свете

В C++ в отличии от Оберона есть UB и он не умеет кидать и обрабатывать исключения от разыменовывания NULL указателей и прочего. В Rust нет UB и казалось бы можно реализовать неубиваемость Оберона, но не осилили, он получился ещё более хрупким чем C++.

Исправление X512, :

Но по факту алгоритм высвобождения через RAII обычно не тестируется, а потому частенько неожиданно переведит программу из одного некорректного состояния в другое некорректное состояние

Я обычно тестирую хотя бы раз весь написанный код. Написать throw в середине кода и посмотреть что будет не сложно. Писать код, который ни разу не исполнялся – ошибочная практика.

Если бы RAII решала все баги на свете, то кодеры на C++ уже были бы самыми счастливыми людьми на свете

В C++ в отличии от Оберона есть UB и он не умеет кидать и обрабатывать исключения от разыменовывания NULL указателей и прочего.

Исправление X512, :

Но по факту алгоритм высвобождения через RAII обычно не тестируется, а потому частенько неожиданно переведит программу из одного некорректного состояния в другое некорректное состояние

Я обычно тестирую хотя бы раз весь написанный код. Написать throw в середине кода и посмотреть что будет не сложно. Писать код, который ни разу не исполнялся – ошибочная практика.

Исходная версия X512, :

Но по факту алгоритм высвобождения через RAII обычно не тестируется, а потому частенько неожиданно переведит программу из одного некорректного состояния в другое некорректное состояние

Я обычно тестирую хотя бы раз весь написанный код. Написать throw в середине кода и посмотреть что будет не сложно.