
🔮 assert
assert или утверждение — давно появившийся #define из стандартной библиотеки
Принцип работы
- Если выражение внутри assert ложное, будет terminate программы
- Для release сборке assert превратится в пустышку
Особенности
- В C++11 появился static_assert — применяется для выражений, которые могут быть вычислены в compile time
- assert очень часто используется в gamedev-коде, даже когда удобнее было бы применить try...catch. Это делается по нескольким причинам: assert дешевле (чем try...catch), в release сборке его вообще нет, поэтому можно их писать чуть ли не везде
assert или утверждение — давно появившийся #define из стандартной библиотеки
Принцип работы
- Если выражение внутри assert ложное, будет terminate программы
- Для release сборке assert превратится в пустышку
Особенности
- В C++11 появился static_assert — применяется для выражений, которые могут быть вычислены в compile time
- assert очень часто используется в gamedev-коде, даже когда удобнее было бы применить try...catch. Это делается по нескольким причинам: assert дешевле (чем try...catch), в release сборке его вообще нет, поэтому можно их писать чуть ли не везде