Title
reverse_iterator default ctor should value initialize
Status
c++11
Section
[reverse.iter.cons]
Submitter
Alisdair Meredith

Created on 2009-03-11.00:00:00 last changed 161 months ago

Messages

Date: 2010-10-21.18:28:33

Proposed resolution:

Change [reverse.iter.con]:

reverse_iterator();

-1- Effects: Default Value initializes current. Iterator operations applied to the resulting iterator have defined behavior if and only if the corresponding operations are defined on a default constructed value initialized iterator of type Iterator.

Change [move.iter.op.const]:

move_iterator();

-1- Effects: Constructs a move_iterator, default value initializing current. Iterator operations applied to the resulting iterator have defined behavior if and only if the corresponding operations are defined on a value initialized iterator of type Iterator.

Date: 2010-10-21.18:28:33

[ 2009 Santa Cruz: ]

Moved to Ready for this meeting.

Date: 2010-10-21.18:28:33

[ 2009-07 post-Frankfurt: ]

Change "constructed" to "initialized" in two places in the proposed resolution.

Move to Tentatively Ready.

Date: 2010-10-21.18:28:33

[ Batavia (2009-05): ]

We believe this should be revisited in conjunction with issue 408, which nearly duplicates this issue. Move to Open.

Date: 2010-10-21.18:28:33

[ Summit: ]

Agree with option i.

Related issue: 408

Date: 2009-03-11.00:00:00

Addresses UK 277

The default constructor default-initializes current, rather than value-initializes. This means that when Iterator corresponds to a trivial type, the current member is left un-initialized, even when the user explictly requests value intialization! At this point, it is not safe to perform any operations on the reverse_iterator other than assign it a new value or destroy it. Note that this does correspond to the basic definition of a singular iterator.

History
Date User Action Args
2011-08-23 20:07:26adminsetstatus: wp -> c++11
2010-10-21 18:28:33adminsetmessages: + msg319
2010-10-21 18:28:33adminsetmessages: + msg318
2010-10-21 18:28:33adminsetmessages: + msg317
2010-10-21 18:28:33adminsetmessages: + msg316
2010-10-21 18:28:33adminsetmessages: + msg315
2009-03-11 00:00:00admincreate