我有以下内容:
class Foo
{
public:
std::string const& Value() const { return /*Return some string*/; }
};
typedef std::list<Foo> FooList;
FooList foos; // Assume it has some valid entities inside
std::vector<int> ints;
FooList::const_iterator it, iend = foos.end();
for (it = foos.begin(); it != iend; ++it)
{
ints.push_back(boost::lexical_cast<int>(it->Value()));
}
如何使用std::for_each
and实现 for 循环boost::phoenix
?我尝试了一些方法,但它变得非常丑陋(我有大量的嵌套bind()
语句)。我基本上只是想看看如何干净和可读的 boost phoenix 可以使这个 for 循环,所以我没有编写太多样板代码来迭代具有 1-2 行专用逻辑的容器。
有时,在 C++11 之前做 lambdas 似乎太不可读和不可维护,不值得麻烦。