2016-09-21 7 views
0

Я портирование моего инструмента PIN 3.0 с помощью Visual C++ 2012, потому что теперь у меня есть Windows, 10. Я последовал за руководство портирования при условии herePIN 3,0 ошибка компиляции из «__value» символ

Однако, я столкнулся с ошибкой :

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 

Является ли это общая проблема, и если да, есть ли обходной путь? Или я пропустил что-то в проводнике портирования? Я понимаю, что имя __value, введенное в этот заголовок PIN 3.0, находится в противоречии.

+0

Этот код является довольно жестоко недружелюбными по отношению к C++. Почему вы считаете, что компиляция с помощью/clr в действительности очень трудно догадаться. Ты просто не можешь. –

+0

@ Hans Passant: Я редактировал вопрос. Я не скомпилировал его с/clr, но с/clr: oldSyntax, как запросил компилятор. – Heyji

ответ

0

Это очевидно «ошибка» в Visual C++, как сообщил here

Решение добавить следующее определение препроцессора:

/D__value=_value 

 Смежные вопросы

  • Нет связанных вопросов^_^