Здравствуйте, drVanо, Вы писали:
V>Можно какой-нибудь простой пример такого адаптора к std::vector<std::unique_ptr<T>>?
В дополнение к вышесказанному. Адаптеры можно писать не только для итераторов, но и для целых контейнеров. Можно, например, написать обобщенный шаблонный адаптор для std::vector и поддержать в нем ковариантность (типа CovariantVector). Тогда каждый такой контейнер будет автоматом являться и контейнером элементов базовых классов. Можно пойди еще дальше и сделать еще более обобщенный шаблон, который можно будет использовать не только с вектором, но и с другими контейнерами, типа того как это сделано в std::queue и std::stack. Правда, здесь возникают некоторые вопросы с принципом Лисков, возможно, именно поэтому такие адапторы отсутствуют в стандартной библиотеке, но, как частное решение для собственных нужд, это может иметь право на существование.
--
Не можешь достичь желаемого — пожелай достигнутого.