gpt4 book ai didi

c++ - GCC 4.4 不实现 C++11 范围循环。它支持哪些其他范围循环语法?

转载 作者:可可西里 更新时间:2023-11-01 18:32:29 24 4
gpt4 key购买 nike

我有一些使用某些 c++11 功能的第三方工具,我需要在 gcc 4.4 下编译它。由于我对 c++11 新功能一点都不熟悉,但我想在我的 google 搜索无果后我会寻求帮助。

我已经启用了 c++0x 开关,但它在这里没有帮助:

for (auto const& fixup : self->m_Fixups)

产生的错误是:

error: expected initializer before ':' token

GCC 4.4 支持哪些与 C++11 范围循环等效的其他范围循环语法?

最佳答案

该代码是基于范围的 for 循环,这在 C++11 中确实是新的。它没有在 GCC 4.4 中实现,这与 C++11 中的一些其他功能不同。试试这个:

for( auto it = self->m_Fixups.begin(); it != self->m_Fixups.end(); ++it )
{
const auto& fixup = *it;
// the rest of the code...
}

上面使用了一些 C++11 特性,这些特性应该在 GCC 4.4 中可用。


正如 Ben Voigt 所指出的:如果您需要使代码更高效,您也可以使用这个稍微不够简洁的版本:

for( auto it = self->m_Fixups.begin(), end = self->m_Fixups.end(); it != end; ++it )
{
const auto& fixup = *it;
// the rest of the code...
}

关于c++ - GCC 4.4 不实现 C++11 范围循环。它支持哪些其他范围循环语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21150266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com