C
cinsk
Hi,
If I have a class (that mimic some of STL's container) like this:
class Elem {
public:
void prepare(); // do something on *this
// ...
};
class Selector {
public:
typedef vector<Elem *> container_type;
typedef container_type::iterator iterator;
iterator begin() { return cont_.begin(); }
iterator end() { return cont_.end(); }
void check_all();
private:
prepare_elem(Elem *p); // do something on 'p'
container_type cont_;
};
If I want to call prepare() for all elements in 'cont_', I could make
the following function:
void Selector::check_all() {
for_each(cont_.begin(), cont_.end(), mem_fun(&Elem:repare));
}
My question is, what if I want to call Selector:repare_elem() for
all elements in 'cont_'? My initial approach won't compile:
void Selector::check_all() {
for_each(cont_.begin(), cont_.end(),
mem_fun(&Selector:repare_elem));
}
Is there anyway to use std::for_each() to call
Selector:repare_elem()?
Thanks in advance.
If I have a class (that mimic some of STL's container) like this:
class Elem {
public:
void prepare(); // do something on *this
// ...
};
class Selector {
public:
typedef vector<Elem *> container_type;
typedef container_type::iterator iterator;
iterator begin() { return cont_.begin(); }
iterator end() { return cont_.end(); }
void check_all();
private:
prepare_elem(Elem *p); // do something on 'p'
container_type cont_;
};
If I want to call prepare() for all elements in 'cont_', I could make
the following function:
void Selector::check_all() {
for_each(cont_.begin(), cont_.end(), mem_fun(&Elem:repare));
}
My question is, what if I want to call Selector:repare_elem() for
all elements in 'cont_'? My initial approach won't compile:
void Selector::check_all() {
for_each(cont_.begin(), cont_.end(),
mem_fun(&Selector:repare_elem));
}
Is there anyway to use std::for_each() to call
Selector:repare_elem()?
Thanks in advance.