C++ Less than predicate

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).



Topic archived. No new replies allowed.