This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++14 status.
Section: 25.5.1 [reverse.iterators] Status: C++14 Submitter: Zhihao Yuan Opened: 2013-08-27 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [reverse.iterators].
View all issues with C++14 status.
Discussion:
We have make_move_iterator, but not make_reverse_iterator, which is also useful when dealing with some types without an rbegin/rend support (like, C strings).
[2013-09 Chicago]
Billy: reviewed it last night STL: has suggested prior, but denied for complexity
Billy: Alisdair wanted to review for reverse(reverse()); STL: likes the issue, was like him Stefanus: likes definitions, places where things should be STL: for consistency with make_move_iterator Stefanus: minor editorial issue - subdivision in these 2 sections is different from [move.iter]. See 25.5.4.9 [move.iter.nonmember] STL: motion to move to Ready Move to ReadyProposed resolution:
This wording is relative to N3691.
Change header <iterator> synopsis, 25.2 [iterator.synopsis] as indicated:
namespace std { […] template <class Iterator> reverse_iterator<Iterator> operator+( typename reverse_iterator<Iterator>::difference_type n, const reverse_iterator<Iterator>& x); template <class Iterator> reverse_iterator<Iterator> make_reverse_iterator(Iterator i); }
Change class template reverse_iterator synopsis, 25.5.1.2 [reverse.iterator] as indicated:
namespace std { […] template <class Iterator> reverse_iterator<Iterator> operator+( typename reverse_iterator<Iterator>::difference_type n, const reverse_iterator<Iterator>& x); template <class Iterator> reverse_iterator<Iterator> make_reverse_iterator(Iterator i); }
After [reverse.iter.opsum] add the following new sub-clause to [reverse.iter.ops]:
template <class Iterator> reverse_iterator<Iterator> make_reverse_iterator(Iterator i);-?- Returns: reverse_iterator<Iterator>(i).