diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-12-08 13:47:04 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-12-09 11:51:41 +0000 |
commit | a314edee2490259d7f7caec8eef77846bcdb608b (patch) | |
tree | 1c9c3617efa110198da1aa02100ef4b9ce25b710 /libstdc++-v3/testsuite/std/ranges | |
parent | 36be2a0e91c76da4afcd5ddc37e03f5800396387 (diff) | |
download | gcc-a314edee2490259d7f7caec8eef77846bcdb608b.zip gcc-a314edee2490259d7f7caec8eef77846bcdb608b.tar.gz gcc-a314edee2490259d7f7caec8eef77846bcdb608b.tar.bz2 |
libstdc++: Fix resolution of LWG 4016 for std::ranges::to [PR112876]
What I implemented in r14-6199-g45630fbcf7875b does not match what I
proposed for LWG 4016, and it imposes additional, unwanted requirements
on the emplace and insert member functions of the container being
populated.
libstdc++-v3/ChangeLog:
PR libstdc++/112876
* include/std/ranges (ranges::to): Do not try to use an iterator
returned by the container's emplace or insert member functions.
* testsuite/std/ranges/conv/1.cc (Cont4::emplace, Cont4::insert):
Use the iterator parameter. Do not return an iterator.
Diffstat (limited to 'libstdc++-v3/testsuite/std/ranges')
-rw-r--r-- | libstdc++-v3/testsuite/std/ranges/conv/1.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libstdc++-v3/testsuite/std/ranges/conv/1.cc b/libstdc++-v3/testsuite/std/ranges/conv/1.cc index b5f861d..6d6a708 100644 --- a/libstdc++-v3/testsuite/std/ranges/conv/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/conv/1.cc @@ -236,19 +236,19 @@ struct Cont4 template<typename T> requires (Kind <= Emplace) && requires(C& c, T&& t) { c.emplace(c.end(), std::forward<T>(t)); } - typename C::iterator - emplace(typename C::iterator, T&& t) + void + emplace(typename C::iterator pos, T&& t) { kind = Emplace; - return c.emplace(c.end(), std::forward<T>(t)); + c.emplace(pos, std::forward<T>(t)); } template<typename T> - typename C::iterator - insert(typename C::iterator, T&& t) + void + insert(typename C::iterator pos, T&& t) { kind = Insert; - return c.insert(c.end(), std::forward<T>(t)); + c.insert(pos, std::forward<T>(t)); } // Required to satisfy reservable-container |