|
Boost Users : |
From: Alexander Shyrokov (shirokov_at_[hidden])
Date: 2006-09-18 11:38:03
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
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net