Namensräume
Varianten
Aktionen

static_assert

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

Dieses Hilfsmakro wird zum Schlüsselwort _Static_assert erweitert.

Inhalt

[bearbeiten] Beispiel

#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");
}

[bearbeiten] Hinweise

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

[bearbeiten] Referenzen

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

[bearbeiten] Siehe auch

C++ Dokumentation für Statische Assertion