Есть ли в C ++ 11 что-то похожее на объект типа Iterator<T>
который просто хранит итератор, не зная, из какого контейнера std исходит итератор, только тип данных, которые хранит контейнер?
Если такого объекта не существует, в чем причина его отсутствия?
В C ++ нет базового класса для итераторов, поскольку они предназначены для высокой производительности (поэтому виртуальные вызовы не приветствуются).
Все типы итераторов разрешаются во время компиляции, и все типы «хранилищ итераторов» также должны быть разрешены во время компиляции.
Какой у вас вариант использования? Может быть другое, лучшее решение.
Нет, не существует общего базового класса итератора, и обходные пути стирания типов (если это возможно даже в этом случае) лишь отложили бы необходимость хранить тип где-то еще.
Может быть, вам следует переосмыслить то, чего вы пытаетесь достичь, и задать вопрос об этом?