Title
"Equivalence" wishy-washiness
Status
nad
Section
[library]
Submitter
David Abrahams

Created on 2009-07-14.00:00:00 last changed 97 months ago

Messages

Date: 2016-11-15.00:00:00

[ 2016-11-12, Issaquah ]

Sat PM: Status: NAD

It was said in 2010: "We need a more clearly draughted issue with an addressable set of concerns, ideally with a paper proposing a resolution, but for a future revision of the standard."

Date: 2010-11-24.14:28:04

[ Moved to NAD Future at 2010-11 Batavia ]

Date: 2010-10-21.19:00:35

[ 2010 Rapperswil: ]

This issue is quite vague, so it is difficult to know if and when it has been resolved. John Lakos wrote a paper covering this area a while back, and there is a real interest in providing some sort of clean-up in the future. We need a more clearly draughted issues with an addressable set of concerns, ideally with a paper proposing a resolution, but for a future revision of the standard. Move to Tentatively NAD Future.

Date: 2010-10-21.18:28:33

[ 2009 Santa Cruz: ]

Move to "Open". Dave is right that this is a big issue. Paper D2987 ("Defining Move Special Member Functions", Bjarne Stroustrup and Lawrence Crowl) touches on this but does not solve it. This issue is discussed in Elements of Programming.

Date: 2009-07-14.00:00:00

Issue: The CopyConstructible requirements are wishy-washy. It requires that the copy is "equivalent" to the original, but "equivalent" is never defined.

I believe this to be an example of a more general lack of rigor around copy and assignment, although I haven't done the research to dig up all the instances.

It's a problem because if you don't know what CopyConstructible means, you also don't know what it means to copy a pair of CopyConstructible types. It doesn't prevent us from writing code, but it is a hole in our ability to understand the meaning of copy.

Furthermore, I'm pretty sure that vector's copy constructor doesn't require the elements to be EqualityComparable, so that table is actually referring to some ill-defined notion of equivalence when it uses ==.

History
Date User Action Args
2016-11-21 05:09:01adminsetmessages: + msg8655
2016-11-21 05:09:01adminsetstatus: open -> nad
2014-11-24 15:11:58adminsetstatus: nad future -> open
2010-11-24 14:28:04adminsetmessages: + msg5441
2010-10-21 19:00:35adminsetmessages: + msg4748
2010-10-21 19:00:35adminsetstatus: open -> nad future
2010-10-21 18:28:33adminsetmessages: + msg1013
2009-07-14 00:00:00admincreate