我正在尝试构建一个开源游戏,但是在尝试构建时始终出现此错误。我一直在搜索最后半小时,但没有任何作用,这是错误所指向的代码

void duel::restore_assumes() {
    for(auto pcard : assumes)
        pcard->assume_type = 0;
    assumes.clear();
}

错误是

最佳答案

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

10-08 10:53