Sorting a container of shared_ptr<T>