static_assert
Определено в заголовочном файле <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"); // well-formed
static_assert(sizeof(int) < sizeof(char), // compile-time error
"this program requires that int is less than char");
}Примечания
Начиная с C23, static_assert само по себе является ключевым словом, которое также может быть предопределенной макрокомандой, поэтому <assert.h> больше не предоставляет его.
Ссылки
- Стандарт 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 |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/error/static_assert