C
cinsk
In the following code:
class session {
public:
explicit session(int id) : id_(id) {}
virtual ~session() {}
int id() { return id_; }
bool equal_id(int id) { return (id_ == id); }
// ...
private:
int id_;
};
typedef list<session *> session_list;
session_list all_sessions;
If I need a global function that find a session pointer in
'all_sessions' using given session id, I could write following
function:
session *find_session_by_id(int id) {
session_list::iterator i = find_if(all_sessions.begin(),
all_sessions.end(),
bind2nd(mem_fun(&session::equal_id), id));
if (i == all_sessions.end())
return 0;
else
return *i;
}
Q1. But, if session::equal_id() is not existed, is it possible to
write a function
similar to the above one? Perhaps using std::equal_to<>() with
some others??
Q2. In stead of session::equal_id(), if class 'session' has a member
function like this:
bool session::equal(const session *s) { return (id_ == s->id_); }
Can I write a find_session_by_id(int id) using session::equal
with some
standard functional objects/adaptors?
Thanks in advance.
class session {
public:
explicit session(int id) : id_(id) {}
virtual ~session() {}
int id() { return id_; }
bool equal_id(int id) { return (id_ == id); }
// ...
private:
int id_;
};
typedef list<session *> session_list;
session_list all_sessions;
If I need a global function that find a session pointer in
'all_sessions' using given session id, I could write following
function:
session *find_session_by_id(int id) {
session_list::iterator i = find_if(all_sessions.begin(),
all_sessions.end(),
bind2nd(mem_fun(&session::equal_id), id));
if (i == all_sessions.end())
return 0;
else
return *i;
}
Q1. But, if session::equal_id() is not existed, is it possible to
write a function
similar to the above one? Perhaps using std::equal_to<>() with
some others??
Q2. In stead of session::equal_id(), if class 'session' has a member
function like this:
bool session::equal(const session *s) { return (id_ == s->id_); }
Can I write a find_session_by_id(int id) using session::equal
with some
standard functional objects/adaptors?
Thanks in advance.