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