首頁 >後端開發 >C++ >儘管支援 C 11,為什麼 Visual Studio 2012 的 __cplusplus 巨集仍然指示 C 98 相容性?

儘管支援 C 11,為什麼 Visual Studio 2012 的 __cplusplus 巨集仍然指示 C 98 相容性?

DDD
DDD原創
2024-11-05 04:36:02654瀏覽

Why Does Visual Studio 2012's __cplusplus Macro Still Indicate C  98 Compatibility Despite C  11 Support?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn