T
are too strongSection: 26.10.13 [numeric.iota] Status: C++11 Submitter: Daniel Krügler Opened: 2008-08-20 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with C++11 status.
Discussion:
According to the recent WP
N2691,
26.10.13 [numeric.iota]/1, the requires clause
of std::iota
says:
T
shall meet the requirements ofCopyConstructible
andAssignable
types, and shall be convertible toForwardIterator
's value type.[..]
Neither CopyConstructible
nor Assignable
is needed, instead MoveConstructible
seems to be the correct choice. I guess the current wording resulted as an
artifact from comparing it with similar numerical algorithms like accumulate
.
Note: If this function will be conceptualized, the here proposed
MoveConstructible
requirement can be removed, because this
is an implied requirement of function arguments, see
N2710/[temp.req.impl]/3, last bullet.
[ post San Francisco: ]
Issue pulled by author prior to review.
[ 2009-07-30 Daniel reopened: ]
with the absence of concepts, this issue (closed) is valid again and I suggest to reopen it. I also revised by proposed resolution based on N2723 wording:
[ 2009-10 Santa Cruz: ]
Change 'convertible' to 'assignable', Move To Ready.
Proposed resolution:
Change the first sentence of 26.10.13 [numeric.iota]/1:
Requires:
T
shallmeet the requirements ofbe assignable toCopyConstructible
andAssignable
types, and shallForwardIterator
's value type. [..]