Title
"Effects: Equivalent to:" and uninitialized memory algorithms
Status
new
Section
[specialized.algorithms]
Submitter
Jiang An

Created on 2021-10-23.00:00:00 last changed 1 month ago

Messages

Date: 2021-10-23.00:00:00

Most uninitialized memory algorithms ([specialized.algorithms]) are specified by plain "Effects: Equivalent to:". According to [structure.specifications]/4, such wording requires propagation of "Constraints" of selected constructors. The first two overloads of std::reduce ([reduce]) are specified similarly.

I feel the wording for uninitialized memory algorithms is incorrect, because it means that the constraints, especially for algorithms in the std, depend on "Constraints" in the specifications of many standard library types (but not any user-defined type), which is implementable but brings serious inconsistency.

Perhaps we should add "Mandates:" to these algorithms (except for algorithms in std::ranges).

History
Date User Action Args
2021-10-23 00:00:00admincreate