私は、次の非常に奇妙な状況を持っている...私のVisual Studioコンパイラ2010以下のコード好きではない:のVisual Studio 2010のC++コンパイラの問題
QStringList lst2 = instantiatedTableInstances.split(strComma, skipper);
for(int i=0; i<lst2.size(); i++)
{
TableInstance* tabInst= v->getTableInstance(lst2.at(i));
result->addInstantiatedTableInstance(tabInst);
}
を、それは私に与える:
..\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'
を
とスクリーンショット:
しかし私が代わりにlst2
すべてがコンパイルのlst
に変数の名前を変更する場合は...
が、これはVisual Studioの2010年には面白いバグです(GCCがそれを気にしていないため)、またはこのためのより多くの隠された理由があるのでしょうか?
スコープ内でlst2が定義済み/宣言済み/マクロでないことを確認してください。 – user2672165
lst2はマクロです。スクリーンショットから色が違っているように見えます。 – relaxxx
ヒント: 'WIN32_LEAN_AND_MEAN'を定義することで修正されました。 – MSalters