c++ - 代码块抛出有关 for_each 的预期主表达式错误

标签 c++ linux ubuntu codeblocks

我正在使用 Irrlicht 创建游戏,目前正在制作 Linux 版本。我将我的代码移到了 Code:Blocks 并删除了 pragma 之类的东西,但是我得到了关于我的 for_each 循环的以下错误:

||=== Build: Debug in IrrlichtScene (compiler: GNU GCC Compiler) ===|
/home/ubuntu/Desktop/IRRPROJECT/TerrainStarter/terrain.cpp||In function ‘int main()’:|
/home/ubuntu/Desktop/IRRPROJECT/TerrainStarter/terrain.cpp|115|error: expected primary-expression before ‘mod’|
/home/ubuntu/Desktop/IRRPROJECT/TerrainStarter/terrain.cpp|115|error: ‘for_each’ was not declared in this scope|
/home/ubuntu/Desktop/IRRPROJECT/TerrainStarter/terrain.cpp|159|error: expected primary-expression before ‘m’|
/home/ubuntu/Desktop/IRRPROJECT/TerrainStarter/terrain.cpp|165|error: expected primary-expression before ‘var’|
/home/ubuntu/Desktop/IRRPROJECT/TerrainStarter/terrain.cpp|171|error: expected primary-expression before ‘an’|
/home/ubuntu/Desktop/IRRPROJECT/TerrainStarter/terrain.cpp|231|warning: unused variable ‘movy’ [-Wunused-variable]|
||=== Build failed: 5 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|

这是我的循环的样子:

for_each (ModelLoader mod in models)
{
    mod.Load();
}

我知道代码与 visual studio 相比可能存在细微差别,但我的 Visual Studio 版本从未遇到过任何问题。预先感谢您的帮助。

最佳答案

您可以使用基于范围的 for 循环代替 for_each这里

for (auto& mod : models)
{
    mod.Load();
}

否则,如果你想坚持使用 for_each,你会这样做

std::for_each(models.begin(), models.end(), [](ModelLoader& mod){ mod.Load(); });

关于c++ - 代码块抛出有关 for_each 的预期主表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492310/

相关文章:

linux - PostgreSQL : Backup script creating only once backup instead of hourly

tomcat - 如何使用ubuntu在aws ec2实例上安装tomcat

ubuntu - 如何让 vim 在 Mac OS X 上像在 Ubuntu 上一样运行?

c++ - 在 openCV 中更改单个像素颜色

c++ - 如何加快 C++ 链接时间

linux - 如何获得与我的搜索查询完全匹配的行号?

python - Keras 不适用于 python3

c++ - 如何实例化MsftRawCDImageCreator?

c++ - 是否可以使用 SetupAPI 检索 .inf 文件中一行的键?

linux - 如何在不创建新文件的情况下合并大量文件