Есть ли способ реализовать оператор->, а не только оператор *. Чтобы следующий код работал:
Iterator<value> it = ...
i = (*it).get();
i = it->get(); // also works
Допустим, у типа значения есть метод get. Когда Iterator реализован, как показано ниже:
template<T> class Iterator {
T operator*() { return ... }
T operator->() { return ... }
}
Вот ... реализация получения правильного T-объекта.
Каким-то образом это не сработает, если я реализую это таким образом. Думаю, я что-то неправильно понимаю.