File tree Expand file tree Collapse file tree 2 files changed +10
-1
lines changed
tests/std/tests/Dev10_722102_shared_ptr_nullptr Expand file tree Collapse file tree 2 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -1642,7 +1642,8 @@ public:
1642
1642
1643
1643
if (_Fancy) {
1644
1644
const _Raw_t _Raw = _Fancy;
1645
- const auto _Rx = new _Ref_count_resource<_Fancy_t, _Deleter_t>(_Fancy, _Other.get_deleter());
1645
+ const auto _Rx =
1646
+ new _Ref_count_resource<_Fancy_t, _Deleter_t>(_Fancy, _STD forward<_Dx>(_Other.get_deleter()));
1646
1647
_Set_ptr_rep_and_enable_shared(_Raw, _Rx);
1647
1648
_Other.release();
1648
1649
}
Original file line number Diff line number Diff line change @@ -211,6 +211,14 @@ namespace unique_ptr_ {
211
211
assert (*ptr.ptr_ == 42 );
212
212
*ptr.ptr_ = 13 ;
213
213
}
214
+
215
+ // Also test LWG-3548 "shared_ptr construction from unique_ptr should move (not copy) the deleter".
216
+ fancy_deleter () = default ;
217
+ fancy_deleter (fancy_deleter&&) = default ;
218
+
219
+ fancy_deleter (const fancy_deleter&) = delete ;
220
+ fancy_deleter& operator =(fancy_deleter&&) = delete ;
221
+ fancy_deleter& operator =(const fancy_deleter&) = delete ;
214
222
};
215
223
216
224
template <class >
You can’t perform that action at this time.
0 commit comments