Получить тип контейнера из (его) типа итератора в C ++ (STL)

Контейнеру легко получить связанные итераторы, например:

std::vector<double>::iterator i; //An iterator to a std::vector<double>

Мне было интересно, возможно ли, учитывая тип итератора, определить тип «соответствующего контейнера» (здесь я предполагаю, что для каждого контейнера существует один и только один (неконстантный) итератор).

Точнее, я хотел бы, чтобы метафункция шаблона работала со всеми контейнерами STL (без необходимости специализировать его вручную для каждого отдельного контейнера), например, так:

ContainerOf< std::vector<double>::iterator >::type 

оценивает

std::vector<double>

Является ли это возможным? Если нет, то почему?

Спасибо заранее за любую помощь!

Ответы на вопрос(1)

Ваш ответ на вопрос