Pull to refresh

Совершенный assert() для всех языков программирования

...как ни смешно, но пострадали стоматологи: стало меньше зубовного скрежета!

Когда C/C++ разработчики переключаются на другие языки, им очень не хватает привычного механизма assert()/NDEBUG. Он, в некотором смысле, позволяет получить "идеальный" метод управления Debug/Release конфигурациями:

Как вы правильно поняли, в Release конфигурации строки кода между #ifndef NDEBUG и #endif полностью исчезают, и мы получаем идеальный билд. Но идентичного результата можно добиться и с помощью комментариев... (здесь должна была быть картинка, но вставить не получается)

Гмм.. Значит будет лишь краткий конспект статьи.

ОК, как ни странно, но это правда: я создал утилиту DebRel, полезную ВСЕМ языкам программирования! Комментарии специального вида (D0 - D9 и R0 - R9) позволяют минимальными усилиями добиться "идеального" управления Debug/Release конфигурациями:

  • Debug конфигурация дает нам всю необходимую диагностику! С различной глубиной.

  • В Release конфигурации нет никаких следов Debug-а! Ни байта.

А именно:

  • Конфигурация RN отменяет все остальные. Релиз -- эгоист!

  • Конфигурация DN оставляет лишь строки от D0 до DN. Вы задаете глубину отладки.

В общем, сразу читайте https://ders.by/arch/debrel/debrel.html Там есть подробности, исходники и сам debrel.exe.

Tags:
-1
Comments1

Articles