Re[7]: Приведение типов итераторов для контейнера с базовым
От: rg45 СССР  
Дата: 17.01.24 10:00
Оценка: 9 (1)
Здравствуйте, drVanо, Вы писали:

V>Можно какой-нибудь простой пример такого адаптора к std::vector<std::unique_ptr<T>>?


В дополнение к вышесказанному. Адаптеры можно писать не только для итераторов, но и для целых контейнеров. Можно, например, написать обобщенный шаблонный адаптор для std::vector и поддержать в нем ковариантность (типа CovariantVector). Тогда каждый такой контейнер будет автоматом являться и контейнером элементов базовых классов. Можно пойди еще дальше и сделать еще более обобщенный шаблон, который можно будет использовать не только с вектором, но и с другими контейнерами, типа того как это сделано в std::queue и std::stack. Правда, здесь возникают некоторые вопросы с принципом Лисков, возможно, именно поэтому такие адапторы отсутствуют в стандартной библиотеке, но, как частное решение для собственных нужд, это может иметь право на существование.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 17.01.2024 10:06 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.