Title
XXX_scan algorithms are specified to work with move-only T, but are specified to make N copies of T into the destination range
Status
new
Section
[exclusive.scan][inclusive.scan] [transform.exclusive.scan][transform.inclusive.scan]
Submitter
Billy O'Neal III

Created on 2018-02-06.00:00:00, last changed 2019-01-20.16:20:00.

Messages

Date: 2019-01-20.00:00:00

[ 2019-01-20 Reflector prioritization ]

Set Priority to 2

Date: 2018-02-06.00:00:00

All of the scan algorithms ([exclusive.scan], [inclusive.scan], [transform.exclusive.scan], [transform.inclusive.scan]) have language like "If init is provided, T shall be MoveConstructible (Table 23); otherwise, ForwardIterator1's value type shall be MoveConstructible.". However, the algorithms operational semantics require that that type be written "by copy" to the destination range, making support for move only types impossible.

We probably need to examine real implementations of these things and see what requirements are actually necessary, as in general GENERALIZED_SUM and GENERALIZED_NONCOMMUTATIVE_SUM need to specify the type used to store intermediate calculations.

History
Date User Action Args
2019-01-20 16:20:00adminsetmessages: + msg10285
2018-02-06 00:00:00admincreate