0

在 Visual Studio 2012 中安装 11 月 CTP 后出现错误。错误出现在unordered_set.hppboost 库中。但我没有在代码中包含unordered_set或任何地方。initializer_list我只在一个文件中使用了 boost,我相信这不是原因。

unordered_set.hpp 中的错误:

#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

编辑:

之后我卸载了 11 月 CTP,但仍然出现同样的错误。

4

2 回答 2

1

C++11在 VS2012 中默认启用。从boost标题

#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
#include <initializer_list>
#endif

您可以尝试定义BOOST_NO_0X_HDR_INITIALIZER_LIST或查找initializer_list标题位置。

// config/suffix.hpp
#if defined(BOOST_NO_INITIALIZER_LISTS) && !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
#endif

// config/compilers/visualc.hpp
#if _MSC_VER <= 1500  || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
#  define BOOST_NO_INITIALIZER_LISTS
#endif

BOOST_STRICT_CONFIG可以评论在config/user.hpp

但是,看起来您没有现代 Visual C++ 标头,这很奇怪,因为您有 VS2012(initializer_list实际上将在 VS2010 中添加标头)。

于 2013-06-25T09:09:55.377 回答
0

今天也遇到同样的问题,发现安装11月CTP还不够,需要在项目配置下更改平台工具集Microsoft Visual C++ Compiler Nov 2012 CTP (v120_CTP_Nov2012)才能真正使用新功能,希望对大家有所帮助。

于 2013-09-24T13:20:44.867 回答