如何檢查C ++ 11支持?有沒(méi)有辦法在編譯時(shí)檢測(cè)編譯器是否支持C ++ 11的某些功能?例如,像這樣:#ifndef VARIADIC_TEMPLATES_SUPPORTED#error "Your compiler doesn't support variadic templates. :("#elsetemplate <typename... DatatypeList>class Tuple{ // ...}#endif
3 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
如C ++ 11標(biāo)準(zhǔn)(§iso.16.8)所述:
編譯C ++轉(zhuǎn)換單元時(shí),名稱__cplusplus被定義為值201103L。
使用該宏的值,您可以檢查編譯器是否符合C ++ 11。
現(xiàn)在,如果您正在尋找一種標(biāo)準(zhǔn)方法來(lái)檢查編譯器是否支持C ++ 11功能的任何子集,我認(rèn)為沒(méi)有標(biāo)準(zhǔn)的,可移植的方式; 您可以檢查編譯器文檔或std庫(kù)頭文件以獲取更多信息。
- 3 回答
- 0 關(guān)注
- 834 瀏覽
添加回答
舉報(bào)
0/150
提交
取消