在C++中,编写一个遍历序列的循环非常繁琐。我们可以使用迭代器,这需要大量的样板代码,或者我们可以使用 std::for_each() 算法并将循环体移到一个谓词中,这同样需要大量的样板代码,并且迫使我们将逻辑移到远离使用它的地方。相比之下,一些其他语言,如Perl,提供了专用的“foreach”构造来自动化这个过程。BOOST_FOREACH 正是C++中这样的构造。它为我们迭代序列,使我们不必直接处理迭代器或编写谓词。
在C++中,编写一个遍历序列的循环非常繁琐。我们可以使用迭代器,这需要大量的样板代码,或者我们可以使用 std::for_each() 算法并将循环体移到一个谓词中,这同样需要大量的样板代码,并且迫使我们将逻辑移到远离使用它的地方。相比之下,一些其他语言,如Perl,提供了专用的“foreach”构造来自动化这个过程。BOOST_FOREACH 正是C++中这样的构造。它为我们迭代序列,使我们不必直接处理迭代器或编写谓词。