Где некоторые люди пишут:
/*
* This can never happen
*/
Гораздо практичнее написать:
assert(i != -1);
Мне нравится использовать утверждения, потому что они легко отключаются с помощью простой постоянной времени компиляции или создаются для чего-то другого, например, для подготовки отчета об ошибке. Обычно я не оставляю утверждения включенными (по крайней мере, не обычным способом) при выпуске чего-либо.
Использование их избавило меня от очень глупых ошибок на компьютерах других людей ... тех смельчаков, которым нравится тестировать мой альфа-код. Использование таких инструментов, как valgrind, помогает гарантировать, что я поймаю что-то ужасное перед тем, как его совершить.