- /**
- * https://quuxplusone.github.io/blog/2019/02/06/arrow-proxy/
- */
- #pragma once
- namespace iterator::detail {
- template <typename Reference> struct arrow_proxy {
- arrow_proxy(Reference r) : r(std::move(r)) {}
- Reference r;
- Reference * operator->() { return std::addressof(r); }
- };
- template <typename R> arrow_proxy(R r) -> arrow_proxy<R>;
- }
|