Mam następujący bardzo dziwną sytuację ... mój kompilator Visual Studio 2010 nie podoba się następujący fragment kodu:Visual Studio 2010 C++ kompilator problem
QStringList lst2 = instantiatedTableInstances.split(strComma, skipper);
for(int i=0; i<lst2.size(); i++)
{
TableInstance* tabInst= v->getTableInstance(lst2.at(i));
result->addInstantiatedTableInstance(tabInst);
}
daje mi:
..\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'
i zrzut ekranu:
ALE czy zmienić nazwę zmiennej do lst
zamiast lst2
wszystko kompiluje ...
Czy to zabawny bug w Visual Studio 2010 (ponieważ GCC nie dba o niego), albo jest bardziej ukryty powód?
Sprawdź, czy lst2 nie jest jeszcze zdefiniowany/zadeklarowany/makro w zakresie. – user2672165
lst2 jest makro. Na zrzucie ekranu wygląda na to, że ma inny kolor, który powinien go zdradzić. – relaxxx
Wskazówka: Naprawiono definiując 'WIN32_LEAN_AND_MEAN'. – MSalters