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::trivial
inproxiable_ptr_constraints
fromstd::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&&) = delete
andproxy::~proxy() = delete
since 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 = default
andproxy& 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
.swap
fromproxy<F>
into global namespacepro
and removed therequires
clause.access_proxy
.