Jonathan Wakely
5edc0c15f1
libstdc++: Implement proposed resolution to LWG 3548
...
This has been tentatively approved by LWG. The deleter from a unique_ptr
can be moved into the shared_ptr (at least, since LWG 2802). This uses
std::forward<_Del>(__r.get_deleter()) not std::move(__r.get_deleter())
because we don't want to convert the deleter to an rvalue when _Del is
an lvalue reference type.
This also adds a missing is_move_constructible_v<D> constraint to the
shared_ptr(unique_ptr<Y, D>&&) constructor, which is inherited from the
shared_ptr(Y*, D) constructor due to the use of "equivalent to" in the
specified effects.
libstdc++-v3/ChangeLog:
* include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
Initialize a non-reference deleter from an rvalue, as per LWG
3548.
(__shared_ptr::_UniqCompatible): Add missing constraint.
* testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
constraints.
2021-05-10 21:10:33 +01:00
..
2021-01-04 10:26:59 +01:00
2021-03-10 15:27:41 +00:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-20 15:14:58 +01:00
2021-01-04 10:26:59 +01:00
2021-04-22 17:35:00 +01:00
2021-04-22 07:34:02 -07:00
2021-04-06 16:43:24 +01:00
2021-04-30 14:57:40 +01:00
2021-05-04 22:45:02 +01:00
2021-04-30 14:57:40 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-03-23 15:00:43 +00:00
2021-02-23 09:30:18 +01:00
2021-01-04 10:26:59 +01:00
2021-03-10 15:27:41 +00:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-30 14:57:40 +01:00
2021-03-10 15:27:41 +00:00
2021-03-10 15:27:41 +00:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-04-09 13:09:23 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-09 13:09:24 +01:00
2021-04-06 16:43:24 +01:00
2021-03-10 15:27:41 +00:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:25 +01:00
2021-01-04 10:26:59 +01:00
2021-03-10 15:27:41 +00:00
2021-01-04 10:26:59 +01:00
2021-03-10 15:27:41 +00:00
2021-04-30 20:30:46 +01:00
2021-03-10 15:27:41 +00:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-05-04 12:07:09 +01:00
2021-01-04 10:26:59 +01:00
2021-03-22 15:56:49 +00:00
2021-04-27 23:21:19 -04:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:25 +01:00
2021-01-04 10:26:59 +01:00
2021-05-05 12:07:52 -04:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-08 21:42:58 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-26 12:30:26 +01:00
2021-04-06 16:43:24 +01:00
2021-05-10 21:10:33 +01:00
2021-04-22 15:49:27 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-28 12:45:49 +01:00
2021-01-04 10:26:59 +01:00
2021-05-06 16:07:10 +01:00
2021-03-10 15:27:41 +00:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-02-09 21:56:27 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-05-06 09:11:42 -04:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-28 17:56:51 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-30 14:57:40 +01:00
2021-04-06 16:43:24 +01:00
2021-01-04 10:26:59 +01:00
2021-04-06 16:43:24 +01:00
2021-04-09 13:09:23 +01:00
2021-01-04 10:26:59 +01:00
2021-01-27 13:45:52 +00:00
2021-01-04 10:26:59 +01:00
2021-04-20 15:14:58 +01:00
2021-03-10 15:27:41 +00:00
2021-03-10 15:27:41 +00:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-06 16:43:24 +01:00
2021-04-09 13:09:23 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-01-04 10:26:59 +01:00
2021-04-30 14:57:40 +01:00