Как отсортировать list из кастомных объектов?
===============================================

 У меня есть шаблонный контейнер list. Он хранит 4 типа объектов, у каждого объекта есть свои поля. Эти объекты унаследованы определённым образом (есть родительский класс, от него наследуется ещё 2 класса и от каждого ещё 2).  

В программе я сначала выбираю с какими объектами буду работать, а уже потом создаю контейнер с этими объектами. Проблема в том, что программа при компиляции не знает с чем она будет работать и ругается на то, что вызываются методы не принадлежащие определённым классам.  

Как мне отсортировать контейнер в зависимости от того какие объекты лежат в контейнере и какие поля у этих объектов? 

 Никак. Нужно использовать интерфейс базового класса этих 4 типов (в списке хранить указатели на базовый класс, а не на конкретный из четырёх). Если у них нет общего базового класса с необходимыми виртуальными функциями, то это уже ошибка проектирования.