This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of TS status.
experimental::function::swap
Section: 4.2.2 [fund.ts.v2::func.wrap.func.mod] Status: TS Submitter: Tim Song Opened: 2015-08-04 Last modified: 2017-07-30
Priority: 0
View all issues with TS status.
Discussion:
Addresses: fund.ts.v2
4.2.2 [fund.ts.v2::func.wrap.func.mod] says that the precondition of swap
is
this->get_memory_resource() == other->get_memory_resource()
That compares two pointers and so requires the memory resource used by *this
and other
to be
the exact same object. That doesn't seem correct (for one, it would essentially outlaw swapping all function
s
constructed with "plain" allocators, since they would each have their own resource_adaptor
object
and so the pointers will not compare equal). Presumably the intent is to compare the memory_resource
s for equality.
Also, other
is a reference, not a pointer.
[2015-09-11, Telecon]
Move to Tentatively Ready
[2015-10-26]
Daniel adjusts wording to lib. fund. v2.
Proposed resolution:
This wording is relative to N4529.
Edit 4.2.2 [fund.ts.v2::func.wrap.func.mod] as indicated:
void swap(function& other);-2- Requires:
-3- Effects: Interchanges the targets of*this->get_memory_resource() == *other
.->.get_memory_resource()*this
andother
. -4- Remarks: The allocators of*this
andother
are not interchanged.