Можно различить, когда параметр шаблона в функторе представляет объект или указатель на объект?
class Comparator
{
public:
template <typename Object>
bool operator() ( const Object &o1, const Object &o2 ) const
{
return ( o1.getID() < o2.getID() );
}
template <typename Object>
bool operator() ( const Object *o1, const Object *o2 ) const
{
return ( o1->getID() < o2->getID() );
}
};
Объекты или указатели хранятся в универсальном контейнере List, который должен быть отсортирован с использованием класса Comparator
int main()
{
List <Object *> objects1;
std::sort(objects1.begin(), objects1.end(), Comparator());
List <Object> objects2;
std::sort(objects2.begin(), objects2.end(), Comparator());
);
В настоящее время я использую два компаратора (Comparator1, Comparator2), но я не нахожу это удобным ...