I have the following private part of a class defined as follows:

struct stats {
double ISIsum;
int authorCount;
bool operator<(const stats &a) const { return ISIsum > a.ISIsum;}
} *stats_;

bool compareSortByISI(const stats &lhs, const stats &rhs);


This enables me to sort this struct by calling:

std::sort(stats_, stats_ + authors_->getMaximumAuthors());

My question is, what if I want to have the option to sort by authorCount or ISIsum at run time. Is there any way to do this?

I can't see how I can override operator< twice and decide which one to call at use time.