Hi there,
Given a class:
1 2 3 4 5
|
class personal_info {
int age_;
public:
int age() const { return age_; }
};
|
What is the difference between:
1 2 3 4 5 6
|
class personal_info_age_less_than {
public:
bool operator() (const personal_info& p1, const personal_info& p2) {
return p1.age() < p2.age();
}
};
|
and
1 2 3 4 5 6 7
|
class personal_info_age_less_than
: public std::binary_function<personal_info, personal_info, bool> {
public:
bool operator() (const personal_info& p1, const personal_info& p2) {
return p1.age() < p2.age();
}
};
|
Thanks.
Last edited on
std::binary_function<> provides some typedefs that are sometimes required by various algorithms in order
to compile.
Technically you should always derive from std::binary_function<> for this case.
(As a side note, you are best making operator() a const function as well).