2016-05-13 1 views
3

Cela a coûté maintenant me fait un certain temps, donc in case quelqu'un d'autre a ce problème, voici:C2061: erreur de syntaxe: identificateur « L » dans qtypetraits.h

J'ai un projet C++ en utilisant Visual Studio 2013 et avec le SDK Rest du CPP. Maintenant, nous commençons à utiliser Qt (version 5.6), donc j'ai ajouté des objets Qt au code.

Je continué à obtenir ce message d'erreur:

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 

Répondre

6

Ce n'est pas la faute de Qt. C'est le SDK Rest du CPP. Il defines a macroU, qui est heureusement remplacé par un paramètre de modèle U dans qtypetraits.h.

Lorsque je définis _TURN_OFF_PLATFORM_STRING dans les définitions du préprocesseur C++, l'erreur disparaît.