繁体   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