Как реализовать оператор-> для типа итератора?

Есть ли способ реализовать оператор->, а не только оператор *. Чтобы следующий код работал:

Iterator<value> it = ...
i = (*it).get();
i = it->get(); // also works

Допустим, у типа значения есть метод get. Когда Iterator реализован, как показано ниже:

template<T> class Iterator {
    T operator*() { return ... }
    T operator->()  { return ... }
 }

Вот ... реализация получения правильного T-объекта.

Каким-то образом это не сработает, если я реализую это таким образом. Думаю, я что-то неправильно понимаю.

14
задан kokosing 19 February 2018 в 09:11
поделиться