
18 Sep
2006
18 Sep
'06
3:38 p.m.
An iterator is pointing to a pointer, how do I add another dereferencing operator in the algorithm, so it works on values? void f(int& i); vector<int*> a; // this would work if f would be void f(int* i) for_each(a.begin(),a.end(),boost::bind(f,_1)); I could define a dereferencing predicate: template<class T> struct deref{ typedef T result_type; T operator()(T* p){assert(p);return *p;} }; for_each(a.begin(),a.end(),boost::bind(f,boost::bind(deref<int>,_1))); but this requires supplying a template parameter. Is there an easier way? Thanks. -- Regards, Alexander. http://sjcomp.com