Namespaces
Variants

static_assert

From cppreference.net
< c ‎ | error
Definido en el encabezado <assert.h>
#define static_assert _Static_assert
(desde C11)
(eliminado en C23)

Esta macro de conveniencia se expande a la palabra clave _Static_assert .

Contenidos

Ejemplo

#include <assert.h>
int main(void)
{
    static_assert(2 + 2 == 4, "2+2 isn't 4");   // bien formado
    static_assert(sizeof(int) < sizeof(char),   // error en tiempo de compilación
                  "this program requires that int is less than char");
}

Notas

Desde C23, static_assert es en sí mismo una palabra clave, que también puede ser una macro predefinida, por lo que <assert.h> ya no lo proporciona.

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.2/3 Diagnósticos <assert.h> (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.2/3 Diagnósticos <assert.h> (p: 135)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.2/3 Diagnósticos <assert.h> (p: 186)

Véase también

Documentación de C++ para Static Assertion