Voglio rilevare, nel file di origine, se il compilatore utilizzato supporta static_assert.Come rilevare se un compilatore supporta static_assert?
risposta
In c11, static_assert
è una macro che si espande a _Static_assert
.
si può semplicemente utilizzare:
#include <assert.h>
#if defined(static_assert)
// static_assert macro is defined
#endif
Nota che alcuni compilatori (ad esempio, IAR) hanno anche un'estensione static_assert
parola chiave, anche se non supportano C11.
Come accennato nei commenti si può anche verificare la presenza di C11:
#if (__STDC_VERSION >= 201112L)
// it is c11, static_assert is defined when assert.h is included
#endif
E allora come fa a sapere se assert.h _Static_assert è supportato? – yshui
@yshui, i file di intestazione standard come 'assert.h' sono forniti dalla piattaforma, quindi hanno la loro magia interna per sapere cosa è supportato o meno. Questo è esattamente il siero di latte che sono qui, quindi non devi preoccuparti di queste caratteristiche. –
- 1. static_assert e Intel C++ compilatore
- 2. Come posso rilevare se un dispositivo iOS supporta l'effetto sfocatura?
- 3. Come posso rilevare se un browser supporta MJPEG?
- 4. Come rilevare la funzionalità se XMLHttpRequest supporta responseType = "arraybuffer"?
- 5. Come rilevare se un server utilizza SPDY
- 6. È possibile rilevare JavaScript se il browser dell'utente supporta gzip?
- 7. Qualche compilatore supporta ancora constexpr?
- 8. constexpr std :: array con static_assert
- 9. Come posso rilevare se un browser supporta il tag di intermittenza?
- 10. Come verificare se il browser supporta HTML5?
- 11. Come rilevare se è presente un microfono
- 12. Come combinare static_assert con sizeof e stringify?
- 13. Come scrivere test eseguibili di static_assert?
- 14. Come rilevare in runtime se alcune opzioni del compilatore (come le asserzioni) erano impostate su ON?
- 15. Rilevare con Javascript se un browser supporta Web Open Font Format (Woff) o no
- 16. Come verificare se un tipo sovraccarica/supporta un determinato operatore?
- 17. Rilevare se JIT è disponibile
- 18. Come posso rilevare se il mio dispositivo Apple supporta Bluetooth Low Energy
- 19. Come rilevare se il browser supporta il valore "solo testo" nel parametro contenteditable?
- 20. Come rilevare se la CPU supporta la tecnologia Intel Anti-Theft?
- 21. Come fare static_assert bel gioco con SFINAE
- 22. Come rilevare se un dato numero è un numero intero?
- 23. Determinare se il browser supporta la stampa
- 24. rilevare se un oggetto è vuoto
- 25. Come verificare se un font supporta uno stile specifico
- 26. Come posso sapere se un server supporta l'intestazione Range?
- 27. Come sondare un computer se supporta SSE2 in Delphi 32?
- 28. Come verificare se un browser supporta shadow DOM
- 29. android rilevare se notte
- 30. Verifica se Browser supporta il timepicker HTML5
si potrebbe verificare la presenza di '__STDC_VERSION__> = 201100' o somesuch – Christoph