Created on 2009-03-11.00:00:00 last changed 162 months ago
Proposed resolution:
Change [reverse.iter.con]:
reverse_iterator();-1- Effects:
DefaultValue initializes current. Iterator operations applied to the resulting iterator have defined behavior if and only if the corresponding operations are defined on adefault constructedvalue initialized iterator of type Iterator.
Change [move.iter.op.const]:
move_iterator();-1- Effects: Constructs a move_iterator,
defaultvalue 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.
[ 2009 Santa Cruz: ]
Moved to Ready for this meeting.
[ 2009-07 post-Frankfurt: ]
Change "constructed" to "initialized" in two places in the proposed resolution.
Move to Tentatively Ready.
[ Batavia (2009-05): ]
We believe this should be revisited in conjunction with issue 408, which nearly duplicates this issue. Move to Open.
[ Summit: ]
Agree with option i.
Related issue: 408
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:26 | admin | set | status: wp -> c++11 |
2010-10-21 18:28:33 | admin | set | messages: + msg319 |
2010-10-21 18:28:33 | admin | set | messages: + msg318 |
2010-10-21 18:28:33 | admin | set | messages: + msg317 |
2010-10-21 18:28:33 | admin | set | messages: + msg316 |
2010-10-21 18:28:33 | admin | set | messages: + msg315 |
2009-03-11 00:00:00 | admin | create |