static_assert
From cppreference.net
|
Определено в заголовочном файле
<assert.h>
|
||
|
#define static_assert _Static_assert
|
(начиная с C11)
(удалено в C23) |
|
Этот удобный макрос раскрывается в ключевое слово _Static_assert .
Содержание |
Пример
Запустить этот код
#include <assert.h> int main(void) { static_assert(2 + 2 == 4, "2+2 isn't 4"); // корректно сформировано static_assert(sizeof(int) < sizeof(char), // ошибка компиляции "this program requires that int is less than char"); }
Примечания
Начиная с C23, static_assert сам по себе является ключевым словом, которое также может быть предопределённым макросом, поэтому <assert.h> больше не предоставляет его.
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.2/3 Диагностика <assert.h> (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.2/3 Диагностика <assert.h> (стр: 135)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.2/3 Диагностика <assert.h> (стр: 186)
Смотрите также
|
C++ документация
для
Static Assertion
|