问个boost::lambda相关问题
看了一阵boost::lambda文档,始终没搞清楚如下需求如何实现:
struct A
{
public:
A() : a(100) {}
int get() const {return a;}
protected:
int a;
};
std::list<boost::shared_ptr<A> > l;
boost::shared_ptr<A> sa(new A);
l.push_back(sa);
l.push_back(sa);
l.push_back(sa);
l.push_back(sa);
for_each(l.begin(), l.end(), ???);
问号处如何实现把l中的所有数据加起来,并放在total里面保存?
比如如下,可是通不过编译:
for_each(l.begin(), l.end(), boost::ref(total) += boost::lambda::_1 ->* &A::get);