可能重複:
GNU C++ how to check when -std=c++0x is in effect?捕獲的C++ 0x裏面的程序標誌
我想要做的是:
#if defined(CPLUSPLUS_OXFLAG)
//do something
#else
//do something else
#endif
現在,我怎麼捕捉 - std = C++ 0x參數傳遞給編譯器(g ++)至define
我的CPLUSPLUS_OXFLAG
標誌?
可能重複:
GNU C++ how to check when -std=c++0x is in effect?捕獲的C++ 0x裏面的程序標誌
我想要做的是:
#if defined(CPLUSPLUS_OXFLAG)
//do something
#else
//do something else
#endif
現在,我怎麼捕捉 - std = C++ 0x參數傳遞給編譯器(g ++)至define
我的CPLUSPLUS_OXFLAG
標誌?
當啓用std=c++0x
時,GCC定義__GXX_EXPERIMENTAL_CXX0X__
。
感謝您的回答 –
對於GCC看看這樣:
__GXX_EXPERIMENTAL_CXX0X__
編譯C++源文件與所述選項時,此宏被定義-std = C++ 0x或-std = GNU ++ 0X。它表示可能包含在C++ 0x中的某些功能可用。請注意,這些功能是實驗性的,可能會在未來版本的GCC中更改或刪除。
查找參考here。
謝謝... +1爲參考 –
您可以嘗試類似'#if __cplusplus> = 201103L #define CPLUSPLUS_OXFLAG#endif'。 – 2011-07-22 20:28:25
在標準的C++ 0x中,[「宏__cplusplus將被設置爲一個不同於(大於)當前199711L的值」](http://www2.research.att.com/~bs/C+ + 0xFAQ.html#0X)。我不確定實驗性的C++ 0x GCC實現是否會這樣做。 –