This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Dup status.
Section: 25.5.1.6 [reverse.iter.elem] Status: Dup Submitter: Billy Robert O'Neal III Opened: 2016-09-23 Last modified: 2021-06-06
Priority: Not Prioritized
View all other issues in [reverse.iter.elem].
View all issues with Dup status.
Duplicate of: 1052
Discussion:
std::reverse_iterator<Iterator>::operator->() is specified to call addressof(operator*()), but it returns iterator_traits<Iterator>::pointer, which may be a fancy pointer type from which no conversion from T* is possible. It should instead delegate to the underlying iterator's operator->().
[Issues processing Telecon 2016-10-7]
Set status to Duplicate
Proposed resolution:
This wording is relative to N4606.
Modify [reverse.iter.opref] as indicated:
constexpr pointer operator->() const;-1-
Returns: addressof(operator*()).Effects: If Iterator is a pointer type, as if by:Iterator tmp = current; return --tmp;Otherwise, as if by:
Iterator tmp = current; --tmp; return tmp.operator->();