簡體   English   中英

什么是C ++ 03宏?

[英]What are the C++ 03 Macros?

我正在嘗試使用-std=c++03編譯庫,但是編譯失敗,因為nullptr_t

如何使用硬編碼宏保證C ++ 03而不是C ++ 11編譯?

提前致謝。

存在於標准的唯一版本檢測是宏的值__cplusplus201103為C ++ 11(ISO / IEC 14882-2011§16.8/ 1)和199711對C ++ 98(ISO / IEC 14882-1998§16.8 / 1)。 C ++ 03顯然不值得擁有自己的編號,並且也使用199711 (ISO / IEC 14882-2003§16.8/ 1)。 如果您覺得這不足以進行特征檢測, 那么您並不孤單

無論如何,您甚至可能需要查閱相關庫的文檔,以確定如何針對C ++ 11之前的版本配置它。

不幸的是,我不知道任何適用於所有編譯器的宏。 對於g ++和clang,有一個名為__GXX_EXPERIMENTAL_CXX0X__的宏,僅在c ++ 11中定義,因此您可以執行

#ifndef __GXX_EXPERIMENTAL_CXX0X__
  // Do some c++03 specific code
#endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM