This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.
Section: 23 [containers] Status: C++11 Submitter: Alisdair Meredith Opened: 2008-09-10 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [containers].
View all other issues in [containers].
View all issues with C++11 status.
Discussion:
Note in particular that Table 90 "Container Requirements" gives
semantics of a.swap(b)
as swap(a,b)
, yet for all
containers we define swap(a,b)
to call a.swap(b)
- a
circular definition.
[ San Francisco: ]
Robert to propose a resolution along the lines of "Postcondition: "a = b, b = a" This will be a little tricky for the hash containers, since they don't have
operator==
.
[ Post Summit Anthony Williams provided proposed wording. ]
[ 2009-07 Frankfurt ]
Moved to Ready with minor edits (which have been made).
Proposed resolution:
In table 80 in section 23.2.2 [container.requirements.general],
replace the postcondition of a.swap(b)
with the following:
Table 80 -- Container requirements Expression Return type Operational semantics Assertion/note pre-/post-conidtion Complexity ... ... ... ... ... a.swap(b);
void
Exchange the contents ofswap(a,b)
a
andb
.(Note A)
Remove the reference to swap from the paragraph following the table.
Notes: the algorithms
swap()
,equal()
andlexicographical_compare()
are defined in Clause 25. ...