BOOST_FOREACH - 宏,我不喜欢宏,而更喜欢使用STL算法+ lambda + bind.
此外,C++ 0x将包含类似于BOOST_FOREACH的for循环:
int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
x *= 2;
}
Run Code Online (Sandbox Code Playgroud)
这是另一个不使用partialy死BOOST_FOREACH的原因.
我描述BOOST_FOREACH
了一个手动编码的循环.
BOOST_FOREACH
在一个简单的循环中,它增加了大约30%,增加了大小为100,000的向量的元素.所以,如果你编写一个小循环,它就不会那么快.一旦你的循环进行了重大处理,Amdahl定律就会开始,并且所造成的损失BOOST_FOREACH
可以忽略不计.