我收到一个错误“无法打开包含文件'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。在哪里可以更改该值?

最佳答案

只是版本检查是错误的。当前VS2012 C ++库的版本为540,在下一发行版中将支持初始化程序列表。即将推出。

Boost团队只是没有时间机器来猜测正确的版本。他们选择了当时可用的版本号,即VS2010的版本号。尽管他们没有通过正确的测试,但是520也没有,所以应该是

10-08 06:58