Visual Studio 2012 __cplusplus 及其與C 11 支援的差異
儘管Visual Studio 2012 宣傳支援C 11,但仍注意到存在宣傳不一致之處關於__cplusplus 巨集。它沒有反映 201103L 的預期值,而是繼續在 C 項目中定義為 199711L。
可能的解釋
__cplusplus 宏是一個預定義宏,它提供編譯器使用的 C 標準的版本號。在這種特定情況下,199711L 的值對應於早於 C 11 的「舊」C 標準。
對 C 11 標頭的影響
即使 C 11標頭包含在專案中,__cplusplus 仍然被錯誤地定義為 199711L。這種不一致可能會導致程式碼與 C 11 標準之間的潛在相容性問題。
已知錯誤
該問題已被 Microsoft 確認,並且已發布錯誤報告已歸檔(預定義宏__cplusplus的值仍然是199711L)。因此,預計將在未來的更新中得到解決。
以上是儘管支援 C 11,為什麼 Visual Studio 2012 的 __cplusplus 巨集仍然指示 C 98 相容性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!