The iterator_traits patch became too large for a concise review, so
the "bloat" —as it were— was moved into this patch. Also tests most
C++[98,17] iterator types to confirm backwards compatibility is
successful (regex iterators are intentionally not present, but directory
iterators are due to a peculiar error encountered while patching
iterator_traits).
Depends on D99461.
I was surprised to see that we can't simply write typename _Tp&. I'm not sure what part of the concepts spec disallows it, do you know?
Would it make sense to rename this to __referenceable? Then below we would have
which I think is nicely consistent.