Details
- Reviewers
mclow.lists ldionne EricWF - Group Reviewers
Restricted Project
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
This patch is missing the main point of LWG 2802, and that is making std::shared_ptr support move-only deleters. You need to make this test that constructors and make functions accepting a deleter accept this code:
template <class ValueT> struct MyDeleter { MyDeleter() = delete; MyDeleter(MyDeleter const&) = delete; MyDeleter(MyDeleter&&) = default; explicit MyDeleter(secret_type) {} // so you can construct it for the test. void operator()(ValueT*); };
Additionally, the static asserts you're adding are required to be SFINAE checks according to the standard.
This was added by LWG 2875 (https://cplusplus.github.io/LWG/lwg-defects.html#2875)
include/memory | ||
---|---|---|
3719 ↗ | (On Diff #200839) | Does this compile in C++03, C++11, or C++14? |
I rewrote this patch so that it doesn't require my (some, now obsolete) other patches. This patch does now rely on the fix from D69344 for C++03 move-constructibility. Also, I updated the tests.
Don't mark 2875 as complete. That would requires some of my other patches so, I'll fix that issue down the road.
In C++03 __compressed_pair doesn't have an implicit move constructor. So, I disabled the tests in C++03.