Boost 1.64 和 Visual Studio 2017 的问题

Issue with Boost 1.64 and Visual Studio 2017

本文关键字:2017 问题 Studio Visual Boost      更新时间:2023-10-16

我正在将库升级到MSVC 141并迁移到Visual Studio 2017。

我已经下载了最新的Boost库(boost_1_64_0_b2-msvc-14.1-64.exe(。构建代码时,出现此错误:

...\boost\move\detail\type_traits.hpp(757(: 错误 C2187: 语法错误: '(' 在这里出乎意料...\boost\move\detail\type_traits.hpp(763(: 注意:请参阅对类模板实例化的引用 正在编译"boost::move_detail::is_copy_constructible">

在提到的标头中,定义了BOOST_MOVE_TT_CXX11_IS_COPY_CONSTRUCTIBLE,但最新的 MSVC 不理解随附的代码。

取消定义此宏会有所帮助,但是有更好的解决方案来解决此问题吗?这是什么原因?

如此处所建议的,在每次包含 cpprest 标头之后或包含 boost 标头之前取消定义宏U

例:

#include <cpprest/http_client.h>
#undef U

需要包括 -

#define _TURN_OFF_PLATFORM_STRING

"#include <<em>cpprest/details/basic_types.h>">

....

看:https://github.com/Microsoft/vcpkg/issues/836