Для кодирования с утверждениями учитывается хороший стиль кодирования.
Что касается времени выполнения включение / выключение Вы можете сделать это с помощью логической переменной. Например, в вашем коде вы можете сделать следующее:
Определите переменную, которая будет использоваться, чтобы указать, включены ли утверждения в глобальном пространстве имен (например, из функции main () в том же файле).
bool turnOnAssertions;
Определите переменную, как написано ниже, в других файлах, где вы хотите включить / выключить свои утверждения:
extern bool turnOnAssertions;
Итак, манипулируя переменной turnOnAssertions с помощью пользовательского интерфейса и записывая
if(turnOnAssertions)
assert(…);
Вы можете включить / выключить некоторые из ваших утверждений!
Что касается времени компиляции , вы должны сделать следующее:
Для вашего компилятора вы должны указать флаг типа -DASSERTIONSON (-Dflag_name [имя флага, вы можете установить все, что захотите])
#ifdef ASSERTIONSON
bool turnOnAssertions = true;
#else
bool turnOnAssertions = false;
#endif
И просто используйте переменную.
Удачи!