A std::reference_wrapper is guaranteed to be initialized (but can be rebound, unlike a normal reference).
Being a wrapper class, what's the reason for std::reference_wrapper not to overload operator-> (and operator*)?
Instead, it is some other functions, like the get() method, to 'unwrap'.
I'm interested to hear what the deeper language reason is to why it is so (canonical or not).
->or*on a normal reference. Why wouldreference_wrapperallow it?operator->andoperator*was discussed at std-proposals last year.