簡體   English   中英

MSVC 2010 是符合 C++11 標准的編譯器嗎

[英]Is MSVC 2010 a C++11-standard-compliant compiler

我正要使用谷歌測試為單元測試我們的MSVC 2010以項目為基礎,但README.mdGTEST v1.10.x分支的文件(目前最新的)中提到的建立一個C ++ 11兼容的標准編譯器要求部分。

那么MSVC 2010是符合 C++11 標准的編譯器,還是我應該使用gtest v1.7.0 ,它在Windows 要求部分提到了Microsoft Visual C++ 7.1 或更新版本

2017 年左右,我們在使用 MSVC10 和 MSVC11 編譯器構建的應用程序中遇到了太多隨機崩潰。 經過分析,我們確定標准 C++ 庫調用是導致崩潰的原因,盡管我們沒有做錯,並且代碼編寫得很完美。

經過一番努力調試和研究,我們發現微軟的 C++11 實現是非標准和錯誤的,並導致了不必要的崩潰 對我們來說,即使是對 condition_variable 的基本 wait_for 調用也會隨機崩潰。 這里有一份這樣的 MSDN 參考資料供您參考。

我們就此事聯系了微軟,他們的答復是,

“很抱歉,沒有針對此錯誤的修補程序可用。我強烈建議升級到最新發布的 VS 版本(當前為 VS 2017 15.4),因為多年來我們已經修復了 STL 多線程機制中的許多錯誤。”

我們不得不將所有項目轉移到 VS2017(當時最新的項目)以擺脫崩潰。 我也不建議你使用那些有問題的編譯器。

最好堅持使用較舊的編譯器(VC8/VC9)或遷移到最新的編譯器(VS2019)。 遷移到 VS2017 后我們沒有問題。

不,MSVC 2010 不完全符合 C++11。 但是,它確實提供了許多 C++11 功能。 您可以嘗試用它編譯最新的 google_test,或者只使用舊版本。

暫無
暫無

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

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