use instances of less<Check *> to compare pointers for list::sort()
This commit is contained in:
parent
be195a72c9
commit
bea36d1f83
30
lib/check.h
30
lib/check.h
|
@ -39,12 +39,7 @@ class Check
|
|||
{
|
||||
public:
|
||||
/** This constructor is used when registering the CheckClass */
|
||||
Check(const std::string &aname)
|
||||
: _name(aname), _tokenizer(0), _settings(0), _errorLogger(0)
|
||||
{
|
||||
instances().push_back(this);
|
||||
instances().sort();
|
||||
}
|
||||
Check(const std::string &aname);
|
||||
|
||||
/** This constructor is used when running checks. */
|
||||
Check(const std::string &aname, const Tokenizer *tokenizer, const Settings *settings, ErrorLogger *errorLogger)
|
||||
|
@ -159,17 +154,28 @@ protected:
|
|||
|
||||
|
||||
private:
|
||||
/** compare the names of Check classes, used when sorting the Check descendants */
|
||||
bool operator<(const Check *other) const
|
||||
{
|
||||
return (name() < other->name());
|
||||
}
|
||||
|
||||
/** disabled assignment operator */
|
||||
void operator=(const Check &);
|
||||
|
||||
};
|
||||
|
||||
namespace std {
|
||||
/** compare the names of Check classes, used when sorting the Check descendants */
|
||||
template <> struct less<Check *> {
|
||||
bool operator()(const Check *p1, const Check *p2) const
|
||||
{
|
||||
return (p1->name() < p2->name());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
inline Check::Check(const std::string &aname)
|
||||
: _name(aname), _tokenizer(0), _settings(0), _errorLogger(0)
|
||||
{
|
||||
instances().push_back(this);
|
||||
instances().sort(std::less<Check *>());
|
||||
}
|
||||
|
||||
/// @}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue