Sorting list < shared_ptr < foo > > using std::list::sort()