MSVCR C++ 不兼容XP情况的分析与解决

新版VC增加了C++11特性,虽然微软已经添加了相应的_xp的SDK。
VS2013 v120_xp
VS2015 v140_xp
VS2017 v141_xp
经过验证一些特定的API在XP系统并不支持。
目前所知道XP不支持 mutex,thread,local_thread

要兼容XP系统,必须针对XP进行相应的更改。目前主要有两种方式:

1、降低VC版本,例如使用VC2010(v100)。
由于C++11的新特性,做降版本兼容会带来很多错误。
例如 不支持using语法,不支持删除标记 =delete等。

2、使用BOOST C++标准库,支持C++11较多的特性。弥补msvcr的不足。
BOOST标准库中包含了,mutex和thread等的支持。在不降低vc版本的情况下。同时保留C++11特性。

已知的特性
std::mutex boost::mutex
std::thread boost":thread
std::unique_lock boost::unique_lock
//std::condition_variable boost::condition_variable

boost官网:https://www.boost.org/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。