0

我收到一个错误“无法打开包含文件'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:\boost\unordered\unordered_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。它在哪里,我可以更改值吗?

4

1 回答 1

2

只是版本检查错误。当前的 VS2012 C++ 库版本为 540,下一个版本将支持初始化列表。很快就会到来。

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

于 2013-06-25T16:35:27.353 回答