Revise semantics of proxiable_ptr_constraints
#127
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
constraint_level::trivialinproxiable_ptr_constraintsfromstd::is_trivially_copy_constructible_v<T>intostd::is_trivially_copy_constructible_v<T> && std::is_trivially_destructible_v<T>to align with the definition ofstd::is_trivially_copyable.proxy<F>, removedproxy::proxy(const proxy&) = delete,proxy::proxy(proxy&&) = delete,proxy& proxy::operator=(const proxy&) = delete,proxy& proxy::operator=(proxy&&) = deleteandproxy::~proxy() = deletesince they are no longer needed.proxy<F>, whenF::constraints::copyability == constraint_level::trivial,proxy(proxy&&)andproxy& operator=(proxy&&)are no longer defined, so that move constructions and move assignments can fall back to trivial implementations ofproxy(const proxy&) noexcept = defaultandproxy& operator=(const proxy&) noexcept = default.proxy<F>, mergedproxy& operator=(const proxy&)andproxy& operator=(const proxy&) noexcept; mergedproxy& operator=(P&& ptr)andproxy& operator=(P&& ptr) noexcept.swapfromproxy<F>into global namespaceproand removed therequiresclause.access_proxy.