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.

871. Iota's requirements on T are too strong

Section: 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 of CopyConstructible and Assignable types, and shall be convertible to ForwardIterator'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 shall meet the requirements of CopyConstructible and Assignable types, and shall be assignable to ForwardIterator's value type. [..]

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy