MSVC 2010是否符合C ++ 11标准

时间:2019-11-25 05:18:28

标签: c++ c++11 visual-studio-2010 visual-c++ googletest

我本来打算使用google test对基于MSVC 2010的项目进行单元测试,但是 gtest v1.10.x 分支的README.md文件(当前最新消息)在 Build Requirements 部分中提到了一个符合C ++ 11标准的编译器

MSVC 2010是C ++ 11标准兼容的编译器,还是我应该使用提及 Microsoft Visual C ++ 7.1或更高版本的 gtest v1.7.0 Windows要求部分中的em>?

2 个答案:

答案 0 :(得分:1)

否,MSVC 2010不完全符合C ++ 11。但是,它确实提供了许多C ++ 11功能。您可以尝试使用它编译最新的google_test,也可以只使用旧版本。

答案 1 :(得分:1)

在2017年左右,使用MSVC10和MSVC11编译器构建的应用程序遇到了太多的随机崩溃。经过分析,我们确定标准的C ++库调用是崩溃的原因,尽管我们没有做错任何事情,并且代码编写正确。

经过一些艰苦的调试和研究,我们发现 Microsoft的C ++ 11实现是非标准且有错误的,并导致了不必要的崩溃。对于我们来说,甚至对condition_variable的基本wait_for调用都具有随机崩溃。 Here是为您提供的一种这样的MSDN参考。

我们对此进行了联系,他们的答复是,

  

”“很抱歉,没有此错误的修补程序。我强烈   建议升级到最新发布的VS版本(当前为VS   2017 15.4),因为我们修复了STL多线程中的许多错误   多年来的机械。”

我们不得不将所有项目移至VS2017(当时的最新项目)来摆脱崩溃。我也不建议您使用那些有问题的编译器。

最好使用较旧的编译器(VC8 / VC9)或升级到最新的编译器(VS2019)。迁移到VS2017后,我们没有任何问题。