J'ai la situation suivante très étrange ... mon compilateur Visual Studio 2010 n'aime pas le morceau de code suivant:Visual Studio 2010 C++ problème compilateur
QStringList lst2 = instantiatedTableInstances.split(strComma, skipper);
for(int i=0; i<lst2.size(); i++)
{
TableInstance* tabInst= v->getTableInstance(lst2.at(i));
result->addInstantiatedTableInstance(tabInst);
}
il me donne:
..\src\DeserializationFactory.cpp(1196) : error C2143: syntax error : missing ';' before 'constant'
..\src\DeserializationFactory.cpp(1196) : error C2440: '=' : cannot convert from 'QStringList' to 'int'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
..\src\DeserializationFactory.cpp(1198) : error C2228: left of '.size' must have class/struct/union
type is 'int'
..\src\DeserializationFactory.cpp(1200) : error C2228: left of '.at' must have class/struct/union
type is 'int'
et une capture d'écran:
MAIS si je renomme la variable à lst
au lieu de lst2
tout compile ...
Est-ce un bug drôle dans Visual Studio 2010 (parce que GCC ne se soucie pas à ce sujet) ou il y a une raison plus cachée pour cela?
Vérifiez que lst2 n'est pas déjà défini/déclaré/macro dans la portée. – user2672165
lst2 est une macro. De la capture d'écran, il semble qu'il a une couleur différente, qui devrait le donner – relaxxx
Astuce: Correction en définissant 'WIN32_LEAN_AND_MEAN'. – MSalters