Spec-Zone.ru › C

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API