我想在源文件中檢測使用的編譯器是否支持static_assert。如何檢測編譯器是否支持static_assert?
7
A
回答
10
在c11中,static_assert
是一個assert.h
宏,擴展爲_Static_assert
。
你可以使用:
#include <assert.h>
#if defined(static_assert)
// static_assert macro is defined
#endif
注意,一些編譯器(例如,IAR)也有,即使他們不支持C11一static_assert
關鍵字擴展。
正如在評論中提到,你還可以檢查C11:
#if (__STDC_VERSION >= 201112L)
// it is c11, static_assert is defined when assert.h is included
#endif
+0
那麼如何做ASSERT.H知道是否支持_Static_assert? – yshui 2014-08-28 16:31:37
+2
@yshui,像'assert.h'這樣的標準頭文件是由平臺提供的,所以他們有內在的魔力知道什麼是支持或不支持。這正是他們在這裏的乳清,所以你不必擔心這些功能。 – 2014-08-28 18:50:40
相關問題
- 1. GNU Java編譯器是否支持JNA?
- 2. 如何檢測是否支持clipboard.js
- 3. 如何檢測UIMotionEffect是否受支持?
- 4. 如何檢測printf是否支持%a?
- 5. 檢測是否支持SSL
- 6. 檢測瀏覽器是否支持jQueryMobile
- 7. 檢測瀏覽器是否支持vbscript?
- 8. 檢查編譯器是否支持boost庫
- 9. 如何檢測瀏覽器是否支持webkit瀏覽器?
- 10. 檢測編譯器是否使用ccache
- 11. 如何檢測編譯器
- 12. 如何檢測瀏覽器是否支持itms鏈接?
- 13. 如何檢測瀏覽器是否支持MJPEG?
- 14. 如何檢測Windows系統是否支持喚醒定時器
- 15. 如何檢測瀏覽器是否支持此HTML5功能
- 16. 如何檢測瀏覽器是否支持gesturestart事件?
- 17. 如何檢測瀏覽器是否支持Flash?
- 18. 如何檢測啓動器主屏幕是否支持旋轉
- 19. 如何檢測瀏覽器是否支持js onscroll ..立即
- 20. 如何檢測瀏覽器是否支持URL()構造函數?
- 21. 如何檢測瀏覽器是否支持iframe?
- 22. 如何檢測瀏覽器是否支持CSS3模糊?
- 23. 如何檢測瀏覽器是否支持角度材質
- 24. 如何檢測瀏覽器是否支持語言?
- 25. MacRuby是否支持靜態編譯?
- 26. 任何編譯器是否都支持constexpr?
- 27. React Native:檢測是否支持UIVisualEffectView
- 28. 檢測設備是否支持jQuery Mobile
- 29. JavaScript:檢測是否支持Symbol.toStringTag
- 30. 檢測是否在笨支持JS
,你可以檢查'__STDC_VERSION__> = 201100'或諸如此類 – Christoph 2014-08-28 15:53:44