How to use bind library to de-reference a pointer


On 2/17/06, Sebastian Redl
How about an indirect_iterator?
Or maybe a ptr_vector, so that your iterators are automatically indirect? lambda needs result deduction, which is hard, but you could always write your own simple dereferencing functor along the lines of the following: template <typename T> struct dereference_as { template <typename P> T &operator()(P ptr) { return *ptr; } } and then for_each( aVector.begin(), aVector.end(), bind(&myFunc, bind( dereference_as<A>(), _1) ) ); ~ Scott McMurray

Thanks. but when I do that, I get a compile error saying
PageBreaker.cpp:189: instantiated from here
A.h:268: error: 'A::A(const A&)' is private
Why boost is trying to make a copy of A (a vector is a list of A*).
And how can I fix that without making A constructor public?
Thank you.
On 17 Feb 2006 11:23:00 +0000, Jens Theisen

On 2/17/06, Meryl Silverburgh
Why boost is trying to make a copy of A (a vector is a list of A*).
And how can I fix that without making A constructor public?
I have no idea why it'd be doing that -- some more code would be helpful.
The following testcase seems to work fine:
#include <iostream>
#include <vector>
#include <algorithm>
#include

Meryl wrote:
My case is using a vector of a pointer of a Class say 'A' which that class's constructor is private.
The following is working for me:
#include <iostream>
#include <vector>
#include <algorithm>
#include
participants (4)
-
jth01@arcor.de
-
me22
-
Meryl Silverburgh
-
Sebastian Redl