现在这已经花了我很多时间,所以in case其他人都遇到了这个问题,这里是:
我有一个使用Visual Studio 2013和CPP Rest SDK的C++项目。现在我们开始使用Qt(5.6版),因此我在代码中添加了Qt对象。
我不断收到此错误消息:
C:\Qt\Qt5.6.0\5.6\msvc2013_64\include\QtCore/qtypetraits.h(523): warning C4003: not enough actual parameters for macro 'U'
C:\Qt\Qt5.6.0\5.6\msvc2013_64\include\QtCore/qtypetraits.h(523): warning C4003: not enough actual parameters for macro '_XPLATSTR'
C:\Qt\Qt5.6.0\5.6\msvc2013_64\include\QtCore/qtypetraits.h(523): error C2061: syntax error : identifier 'L'
C:\Qt\Qt5.6.0\5.6\msvc2013_64\include\QtCore/qtypetraits.h(527) : see reference to class template instantiation 'QtPrivate::is_default_constructible<T>' being compiled
最佳答案
这不是Qt的错。这是CPP Rest SDK。它是defines a macro U
,很高兴被qtypetraits.h中的U
模板参数替换。
当我在C++预处理程序定义中定义_TURN_OFF_PLATFORM_STRING
时,错误消失了。