Я знаю, что static_assert
делает утверждения во время компиляции, а assert
- во время выполнения, но в чем разница на практике? Насколько я понимаю, в глубине души это фрагменты кода, например
if (condition == false) exit();
- Может ли кто-нибудь дать мне пример того, где будет работать только
static_assert
, или толькоassert
? - Делают ли они что-нибудь, что не может сделать простой оператор
if
? - Используется ли им плохая практика?