0

我正在使用 Visual c++ 2012 将我的工具移植到 PIN 3.0,因为我现在拥有 Windows 10。我遵循了此处提供的移植指南

但是,我遇到了一个错误:

error C4890: '__value': use of this keyword requires the command line option: /clr:oldSyntax

打开此 /clr:oldSyntax 选项时,加上添加 RTTI 可用性(/GR 而不是 /GR-),否则它与 /clr:oldSyntax 不兼容,我或多或少会遇到相同的问题:

error C2059: syntax error: '__value'

此错误位于文件 type_trait.h(PIN 3.0 库的头文件)中

#ifdef _STLP_STATIC_CONST_INIT_BUG
    static const bool __value;
#else
    static const bool __value = sizeof(__test<_Tp>(0)) == sizeof(__select_types::__t1);
#endif

这是一个常见问题吗?如果是,有什么解决方法吗?还是我错过了移植指南中的某些内容?我了解此 PIN 3.0 标头中引入的名称 __value 存在冲突。

4

1 回答 1

0

这显然是视觉 c++ 中的一个“错误”,如此处所报道

解决方案是添加以下预处理器定义:

/D__value=_value
于 2016-09-22T18:38:50.730 回答