Получить тип контейнера из (его) типа итератора в C ++ (STL)
Контейнеру легко получить связанные итераторы, например:
std::vector<double>::iterator i; //An iterator to a std::vector<double>
Мне было интересно, возможно ли, учитывая тип итератора, определить тип «соответствующего контейнера» (здесь я предполагаю, что для каждого контейнера существует один и только один (неконстантный) итератор).
Точнее, я хотел бы, чтобы метафункция шаблона работала со всеми контейнерами STL (без необходимости специализировать его вручную для каждого отдельного контейнера), например, так:
ContainerOf< std::vector<double>::iterator >::type
оценивает
std::vector<double>
Является ли это возможным? Если нет, то почему?
Спасибо заранее за любую помощь!