Namespaces
Variants

static_assert

From cppreference.net
< c ‎ | error
Definiert im Header <assert.h>
#define static_assert _Static_assert
(seit C11)
(entfernt in C23)

Dieses praktische Makro erweitert sich zum Schlüsselwort _Static_assert .

Inhaltsverzeichnis

Beispiel

#include <assert.h>
int main(void)
{
    static_assert(2 + 2 == 4, "2+2 isn't 4");   // wohlgeformt
    static_assert(sizeof(int) < sizeof(char),   // Kompilierzeitfehler
                  "this program requires that int is less than char");
}

Hinweise

Seit C23 ist static_assert selbst ein Schlüsselwort, das auch ein vordefinierter Makro sein kann, daher stellt <assert.h> es nicht mehr bereit.

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.2/3 Diagnose <assert.h> (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.2/3 Diagnose <assert.h> (S: 135)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.2/3 Diagnose <assert.h> (S: 186)

Siehe auch

C++ Dokumentation für Static Assertion