decltype(auto) operator->() const
requires see below;
auto&& tmp = *get<I>(v_); return addressof(tmp);
class proxy { iter_value_t<I> keep_; proxy(iter_reference_t<I>&& x) : keep_(std::move(x)) {} public: const iter_value_t<I>* operator->() const { return addressof(keep_); } };