[libc++] Implement P1989R2: range constructor for string_view
authorJoe Loser <joeloser93@gmail.com>
Wed, 3 Nov 2021 22:45:04 +0000 (18:45 -0400)
committerJoe Loser <joeloser93@gmail.com>
Thu, 2 Dec 2021 04:16:36 +0000 (23:16 -0500)
commitc16b13ebf97753a84cb7062c4c1ac984851de4b9
tree27581e90db2c32e4d6f3d97430509c5c64929a2e
parentae234a7545db8b73297f56508d95a4f85cfd7c1f
[libc++] Implement P1989R2: range constructor for string_view

Implement P1989R2 which adds a range constructor for `string_view`.

Adjust `operator/=` in `path` to avoid atomic constraints caching issue
getting provoked from this PR.

Add defaulted template argument to `string_view`'s "sufficient
overloads" to avoid mangling issues in `clang-cl` builds. It is a
MSVC mangling bug that this works around.

Differential Revision: https://reviews.llvm.org/D113161
libcxx/docs/Status/Cxx2bPapers.csv
libcxx/include/filesystem
libcxx/include/string_view
libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp [new file with mode: 0644]
libcxx/test/std/strings/string.view/string.view.deduct/iterator_sentinel.pass.cpp [moved from libcxx/test/std/strings/string.view/string.view.cons/deduct.pass.cpp with 100% similarity]
libcxx/test/std/strings/string.view/string.view.deduct/range.pass.cpp [new file with mode: 0644]