在带有平台工具设置“ Microsoft CodeGen v140_clang_c2”的VS2015中进行编译时,包含<functional>和<memory>头的文件会导致错误

时间:2018-09-23 21:17:13

标签: c++ clang c++14

我已经用clang(也在this中)编译并运行了gcc6.3代码,它们都可以正常工作。

在我的Visual Studio 2015中,我还使用以下Platformtoolsets进行了编译。

  • Visual Studio 2013-Windows XP(v120_xp)
  • Visual Studio 2015-Windows XP(v140_xp)

两者都可以编译。

但是当我使用工具集时,

  • Visual Studio 2015-带有Microsoft CodeGen(v140_clang_c2)的Clang

enter image description here

我遇到以下错误

enter image description here

当我包含内存和功能标头时,似乎会发生此问题。

#include <functional>
#include <memory>

知道为什么会这样吗?以及如何避免呢?

1 个答案:

答案 0 :(得分:2)

正如注释中提到的1201ProgramAlarm一样,我必须在属性中打开启用运行时类型信息。
(对于Visual Studio 2015)在属性页中,展开配置属性-> C / C ++,然后选择语言。
否(-fno-rtti)更改为是(-frtti) enter image description here