LINUX.ORG.RU

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

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

Так ничто не мешает ему вручную деструктор шлепнуть раньше, такие же результаты будут (в этом и прелесть нашлепок в виде с++, они ни от чего не спасают, они запудривают и говорят вам - «пользуйтесь вот этим видом публичного интерфейса, не пытайтесь использовать нашу пудру так, как ее не предполагалось использовать»), исключения часть ртл, они отключаются т.е. частью языка они не являются это пришитый функционал. «А в коде фбс нет» потому что это не продакшен код, а просто минимальный пример того, что что-то типа RAII можно и на С состряпать, его как минимум можно обернуть адт и написать документацию по использованию и получите приблизительно библиотечную реализацию с++, ну и вы хотите от С того чего он не умеет, eсть заглушки __try, __except, __finally (excpt.h), есть возможность поюзать исключения от с++, но все это противоречит языку, да и в конце концов вы так говорите, как будто исключения это не рантайм механизм, тут только грамотный линтер или статический анализатор могут сказать что вы делаете какую-то дичь, если вы реально ее делаете и не отдаете себе отчет в этом. Ну и как уже писалось выше сначала вы пишите код подобный тому что написан, а потом берете и ломает его работу, классическое ссзб.

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

Так ничто не мешает ему вручную деструктор шлепнуть раньше, такие же результаты будут (в этом и прелесть нашлепок в виде с++, они ни от чего не спасают, они запудривают и говорят вам - «пользуйтесь вот этим видом публичного интерфейса, не путайтесь использовать нашу пудру так, как ее не предполагалось использовать»), исключения часть ртл, они отключаются т.е. частью языка они не являются это пришитый функционал. «А в коде фбс нет» потому что это не продакшен код, а просто минимальный пример того, что что-то типа RAII можно и на С состряпать, его как минимум можно обернуть адт и написать документацию по использованию и получите приблизительно библиотечную реализацию с++, ну и вы хотите от С того чего он не умеет, eсть заглушки __try, __except, __finally (excpt.h), есть возможность поюзать исключения от с++, но все это противоречит языку, да и в конце концов вы так говорите, как будто исключения это не рантайм механизм, тут только грамотный линтер или статический анализатор могут сказать что вы делаете какую-то дичь, если вы реально ее делаете и не отдаете себе отчет в этом. Ну и как уже писалось выше сначала вы пишите код подобный тому что написан, а потом берете и ломает его работу, классическое ссзб.