Использовал указанную конструкцию для наполнения вектора на объектами по их чисто виртуальному предку (аналог abstract class в жаве). Коллега утверждает, что это выстрел в ногу и надо всегда использовать vector<shared_ptr<T>>.
Кто прав?
Мой довод: на компьютере программиста всё работает (C) c unique_ptr, в то время как shared_ptr это оверхед с int-м на куче, который не даёт видимых (сейчас) преимуществ.
Довод коллеги: мнение основано на личном опыте поддержки и фиксения кода.