gpt4 book ai didi

c++ - 正确的 BOOST_FOREACH 用法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:27 32 4
gpt4 key购买 nike

当使用BOOST_FOREACH时,下面的代码安全吗?

BOOST_FOREACH (const std::string& str, getStrings())
{
...
}

...

std::vector<std::string> getStrings()
{
std::vector<std::string> strings;
strings.push_back("Foo");
...
return strings;
}

或者我应该在 调用 BOOST_FOREACH 之前获取容器的拷贝,例如:

const std::vector<std::string> strings = getString();
BOOST_FOREACH (const std::string& str, strings)
{
...
}

在第一个示例中,BOOST_FOREACH 是否有可能最终多次调用 getStrings() 的危险?

最佳答案

And although BOOST_FOREACH is a macro, it is a remarkably well-behaved one. It evaluates its arguments exactly once, leading to no nasty surprises

关于c++ - 正确的 BOOST_FOREACH 用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2271907/

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