我收到一个错误“无法打开包含文件'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_LIST
在dinkumware.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也没有,所以应该是