Ich möchte in der Quelldatei erkennen, ob der verwendete Compiler static_assert unterstützt.Wie erkennt man, ob ein Compiler static_assert unterstützt?
Antwort
In c11, static_assert
ist ein assert.h
Makro, das zu _Static_assert
erweitert.
Sie können einfach verwenden:
#include <assert.h>
#if defined(static_assert)
// static_assert macro is defined
#endif
Beachten Sie, dass einige Compiler (zum Beispiel IAR) auch eine static_assert
Keyword-Erweiterung haben, auch wenn sie unterstützen C11 nicht.
Wie in den Kommentaren erwähnt können Sie auch für c11 überprüfen:
#if (__STDC_VERSION >= 201112L)
// it is c11, static_assert is defined when assert.h is included
#endif
Dann wie funktioniert assert.h wissen, ob _Static_assert unterstützt wird? – yshui
@yshui, die Standard-Header-Dateien wie 'assert.h' werden von der Plattform zur Verfügung gestellt, so haben sie ihre interne Magie zu wissen, was unterstützt wird oder nicht. Das ist genau das, was sie sind, also müssen Sie sich nicht um solche Features sorgen. –
- 1. Wie erkennt man, ob ein HTML5-Eingabesteuerelement unterstützt wird?
- 2. Wie erkennt man, ob CPU Intel Anti-Theft-Technologie unterstützt?
- 3. Wie erkennt man, ob ein Datei-Handle ein Socket ist?
- 4. Wie erkennt man, ob ein Webserver Web Services unterstützt oder nicht?
- 5. Wie erkennt man ein Android-Gerät, ob es Google Maps API unterstützt
- 6. Unterstützt ein Compiler bereits conexpr?
- 7. Wie erkennt man, ob Daydream eingeschaltet ist?
- 8. iPhone: Wie erkennt man, ob iTunes spielt?
- 9. C#: Wie erkennt man, ob in Windows ein 'Benutzerkonto' existiert?
- 10. Qt: Wie erkennt man, ob ein Widget ausgewählt ist?
- 11. Wie erkennt man, ob ein JPEG CMYK-Farbprofil enthält?
- 12. Wie erkennt man, ob ein Typ eine benutzerdefinierte Struktur ist?
- 13. Wie erkennt man, ob ein PNG mit PhotoShop bearbeitet wurde?
- 14. Wie erkennt man, ob ein OpenGL-Kontext Hardware-beschleunigt ist?
- 15. Wie erkennt man, ob eine HTML-Seite ein Video enthält?
- 16. Wie erkennt man, ob ein Feld geladen wird?
- 17. Wie erkennt man, ob ein Drucker mit pyqt verbunden ist?
- 18. Wie erkennt man, ob ein bestimmtes Laufwerk eine Festplatte ist?
- 19. Wie erkennt man, ob ein Eingabefeldwert eine Maske ist?
- 20. Wie erkennt man, ob ein Audio zu laut ist?
- 21. Wie erkennt man, ob ein Plugin Scribd verwendet?
- 22. Django wie erkennt man, ob ein Formularfeld ausgefüllt wurde?
- 23. Wie erkennt man, ob ein Mikrofon in Android vorhanden ist?
- 24. Wie erkennt man, ob ein Android-Gerät SMS senden kann?
- 25. Wie erkennt man, ob ein Benutzer IE 6 ausführt?
- 26. Wie erkennt man, ob ein Modell neu ist oder nicht?
- 27. Wie erkennt man, ob ein Land Sommerzeit mit JavaScript verwendet?
- 28. Wie erkennt man, ob ein Programm mit Threaded kompiliert wurde?
- 29. Wie erkennt man, ob ein Bot zum Kontakt hinzugefügt wird?
- 30. Wie erkennt man, ob ein Skript auf einem TTY läuft?
Sie überprüfen könnten für '__STDC_VERSION__> = 201100', etc. zu jagen – Christoph