其中定义了_CPPLIB_VER,在visual studio中可修改吗

Where is _CPPLIB_VER defined and is it modifiable in visual studio

本文关键字:studio visual 修改 VER 定义 CPPLIB      更新时间:2023-10-16

我收到一个错误"无法打开包含文件'initializer_list',但我没有在代码中的任何位置包含initializer_list

#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
#include <initializer_list> // error C1083: Cannot open include file: 'initializer_list': No such file or directory d:boostunorderedunordered_set.hpp
#endif

然后我使用'show includes'选项,发现BOOST_NO_0X_HDR_INITIALIZER_LISTdinkumware.hpp:中

//  C++0x headers implemented in 520 (as shipped by Microsoft)
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
#endif

现在我知道_CPPLIB_VER必须在某个地方定义,并且该值大于520。它在哪里?我可以更改值吗?

只是版本检查出错。当前的VS2012 C++库版本是540,下一个版本将支持初始值设定项列表。很快就要来了。

Boost团队只是没有时间机器来猜测正确的版本。他们选择了当时可用的版本号,即VS2010的版本号。尽管他们的测试错了,520也没有,所以应该是<=。除了更新Boost之外,编辑该文件将是一个快速解决方案。