Здравствуйте Кодт, Вы писали:
К>// так объявлен метод списка К>void std::list<T>::sort(greater<T>& pred);
Еще хуже: void std::list<T>::sort(greater<T> pred); (без ссылки), так что, даже если бы (не дай бог) функция greater<T>::operator() была виртуальным, объект все равно срезался бы, и в любом случае была бы вызвана операция greater<T>::operator().
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен