簡體   English   中英

錯誤C2143:語法錯誤:在“:”之前缺少“,”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM