aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/std/ranges
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2023-12-08 13:47:04 +0000
committerJonathan Wakely <jwakely@redhat.com>2023-12-09 11:51:41 +0000
commita314edee2490259d7f7caec8eef77846bcdb608b (patch)
tree1c9c3617efa110198da1aa02100ef4b9ce25b710 /libstdc++-v3/testsuite/std/ranges
parent36be2a0e91c76da4afcd5ddc37e03f5800396387 (diff)
downloadgcc-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.cc12
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