У меня есть шаблон класса с личным членом карты
template <typename T>
class MyClass
{
public:
MyClass(){}
private:
std::map<T,T> myMap;
}
Я хотел бы создать приватный метод, который принимает итератор для карты
void MyFunction(std::map<T,T>::iterator &myIter){....}
Однако, это получает ошибку компиляции: идентификатор 'итератор'. Мне не нужно передавать абстрактный итератор, так как MyFunction знает, что это итератор карты (и будет использоваться только в качестве интегратора для myMap), и будет обрабатывать его как таковой (доступ и изменение myIter-> second). Передачи myIter-> second в MyFunction недостаточно, так как MyFunction также должна иметь возможность ++ myIter;.