[英]error C2143: syntax error : missing ',' before ':'
我正在嘗試構建開源游戲,但是在嘗試構建時始終出現此錯誤。 我一直在搜索最后半小時,但沒有任何反應,這是錯誤所指向的代碼
void duel::restore_assumes() {
for(auto pcard : assumes)
pcard->assume_type = 0;
assumes.clear();
}
錯誤是
錯誤1錯誤C2143:語法錯誤:':'之前缺少','c:\\ users \\ user \\ desktop \\ project source \\ ocgcore \\ duel.cpp 108 1 ocgcore(Visual Studio 2010)
如下表所示: C ++ 11編譯器支持
基於范圍的for循環不適用於MSVC2010,但適用於MSVC2012(版本11)。 因此,如果使用2010編譯器,則此代碼將無法編譯。
該錯誤消息非常明顯:編譯器在for語句中不希望使用:
。
MS VC ++ 2010不支持C ++ 2011中引入的基於范圍的語句。但是,它具有自己的語言擴展名: for each
。
嘗試更改此代碼
void duel::restore_assumes() {
for(auto pcard : assumes)
pcard->assume_type = 0;
assumes.clear();
}
至
void duel::restore_assumes() {
for each (auto pcard in assumes)
pcard->assume_type = 0;
assumes.clear();
}
否則,您可以使用帶有對象假定迭代器的普通循環或某種標准算法,例如std::for_each
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.