Title
writable is no longer a term of power
Status
nad editorial
Section
[iterator.requirements.general][iterator.cpp17.general] [alg.replace][alg.fill][alg.remove] [alg.unique][alg.random.sample][partial.sort.copy] [alg.partitions][partial.sum] [adjacent.difference][rand.util.seedseq]
Submitter
Alisdair Meredith

Created on 2024-11-27.00:00:00 last changed 2 weeks ago

Messages

Date: 2024-12-04.00:00:00

[ 2024-12-04 Status changed: New → NAD Editorial. ]

Date: 2024-12-02.19:28:13

There are a numerous algorithms that mandate an iterator is "writable ([iterator.requirements.general])": e.g., for the `std::fill` algorithm, [alg.fill] 26.7.6p2

Mandates: The expression value is writable ([iterator.requirements.general]) to the output iterator.

However, checking [iterator.requirements.general] I can find no definition for the term "writable". Checking past standards, I found that in C++17 we have the following definition:

An output iterator `i` has a non-empty set of types that are writable to the iterator;

However, when we introduced the concept-based iterator taxonomy, this definition was replaced by:

An output iterator `i` has a non-empty set of types that are `indirectly_writable` to the iterator;

where the term of power is no longer defined, but a concept is used to define the relationship between iterator and value instead. We need to either find and fix each reference to "writable" (or more properly "writable to" — the old term is a relationship between two types, not a property of just one) using the `indirectly_writable` concept, or restore a definition of the term of power — likely phrased in terms of the `indirectly_writable` concept.

Daniel:

It seems that the editorial direction of P1878R1 accepted in Belfast 2019,

Change stable name [iterator.concept.writable] to [iterator.concept.indirectly.writable] and globally replace all occurrences of "writable" (the concept) with "indirectly_writable"

has either been incorrectly applied [iterator.requirements.general] (because that position did not actually refer to the writable concept) or if the interpretation that the original writable definition from [iterator.requirements.general] was intended to be aliased with the writable concept this substitution has been incompletely applied to the working draft.

History
Date User Action Args
2024-12-04 15:12:46adminsetmessages: + msg14509
2024-12-04 15:12:46adminsetstatus: new -> nad editorial
2024-11-27 00:00:00admincreate