Легко дается контейнер, чтобы получить связанные итераторы, например:Получить тип контейнера из (его) типа итератора в C++ (STL)
std::vector<double>::iterator i; //An iterator to a std::vector<double>
мне было интересно, если это возможно, учитывая тип итератора , чтобы вывести тип «соответствующего контейнера» (здесь я предполагаю, что для каждого контейнера есть один и только один (неконстантный) итератор).
Точнее, я хотел бы metafunction шаблон, который работает со всеми STL контейнеров (без специализироваться вручную для каждого отдельного контейнера), что, например:
ContainerOf< std::vector<double>::iterator >::type
вычисляет
std::vector<double>
Возможно ли это? Если нет, то почему?
Заранее благодарю за помощь!
Вы пытаетесь узнать о Concep итератора ? то есть, если это случайный доступ? STL использует теги для этого. Обычно нет причин знать, откуда итератор. – pmr
Знаете ли вы, есть ли у вас итератор в одном из 7 контейнеров STL, или вам нужно предложение «else»? – MSalters