static_assert
From cppreference.net
|
Défini dans l'en-tête
<assert.h>
|
||
|
#define static_assert _Static_assert
|
(depuis C11)
(supprimé en C23) |
|
Cette macro de commodité se développe en le mot-clé _Static_assert .
Table des matières |
Exemple
Exécuter ce code
#include <assert.h> int main(void) { static_assert(2 + 2 == 4, "2+2 isn't 4"); // bien formé static_assert(sizeof(int) < sizeof(char), // erreur de compilation "this program requires that int is less than char"); }
Notes
Depuis C23, static_assert est lui-même un mot-clé, qui peut également être une macro prédéfinie, donc <assert.h> ne le fournit plus.
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.2/3 Diagnostics <assert.h> (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.2/3 Diagnostics <assert.h> (p : 135)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.2/3 Diagnostics <assert.h> (p: 186)
Voir aussi
|
Documentation C++
pour
Static Assertion
|