🔮 assert



assert или утверждение — давно появившийся #define из стандартной библиотеки



Принцип работы

- Если выражение внутри assert ложное, будет terminate программы

- Для release сборке assert превратится в пустышку



Особенности

- В C++11 появился static_assert — применяется для выражений, которые могут быть вычислены в compile time

- assert очень часто используется в gamedev-коде, даже когда удобнее было бы применить try...catch. Это делается по нескольким причинам: assert дешевле (чем try...catch), в release сборке его вообще нет, поэтому можно их писать чуть ли не везде