Section: 184.108.40.206 [string.view.iterators] Status: C++17 Submitter: Alisdair Meredith Opened: 2016-11-17 Last modified: 2017-07-30
View all issues with C++17 status.
The wording for basic_string_view was written before the definition of a contiguous iterator was added to C++17 to avoid repeating redundant wording.
Suggested modification of 220.127.116.11 [string.view.iterators] p1 (stealing words from valarray begin/end):
A constant random-access iterator type such that, for a const_iterator it, if &*(it + N) is valid, then &*(it + N) == (&*it) + N.
This wording is relative to N4606.
Modify 18.104.22.168 [string.view.iterators] as indicated:
using const_iterator = implementation-defined;
-1- A-2- For a basic_string_view str, any operation that invalidates a pointer in the range [str.data(), str.data() + str.size()) invalidates pointers, iterators, and references returned from str's methods. -3- All requirements on container iterators (26.2 [container.requirements]) apply to basic_string_view::const_iterator as well.
constant random-access iterator type such that, for a const_iterator it, if &*(it + N) is valid, then &*(it + N) == (&*it) + N.