New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dismantle requirements table in [re.req] and [container.requirements] #4460
Conversation
Getting rid of the huge requirements tables would be great! One small Q: is "return type" really appropriate for something like X::char_type? A quick search for "return type" in the spec suggests that so far, outside these requirements tables it's been used exclusively to refer to the return types of actual functions. "Effects" also sounds kinda weird when describing compile-time type expressions that have no side-effects. |
No, but it's used like that pervasively in the requirements tables. I'd be happy fold this into a generic "Requirements" element or so. In general, those requirement tables are not abundantly clear whether a member is a type or an expression, anyway. (For example, X::size_type could be a static data member.) |
c1018fc
to
17f5505
Compare
85b6088
to
b353d73
Compare
Updated with @tkoeppe; samples: |
LWG supports this. Next step: turn this into a paper. |
Editorial meeting 2021-04-30: "is an expression with the following properties:" Otherwise, good to go. Make a paper with containers and regex tables converted. |
322bbd4
to
19693dd
Compare
use
drop presenting |
@jwakely, Daniel Krügler has opined on the -lib reflector that "Result:" is an undefined descriptive item and that it would be better to use "Return type:" (which is similarly undefined, but at least pre-existing). However, an expression usually has a type and a value category, but not really a "return type". LWG3166 Should I just invent some words for "Result" for [structure.specification], or what would be your preferred way forward? |
I think it would be better to use Result: (and define it) rather than try to reuse something that isn't a great fit. |
I'm OK with that but would like to ask for explicitly referring to LWG 3166 as part of the paper. |
I've added an entry for "Result:"to [structure.specification]. I think I'm not using "Value:" anywhere, so I'm not seeing why a reference to LWG3166 is necessary. |
The new entry for "Result:" is new information to me, it was not present in the draft I had reviewed and where my request came from. Given the new state I agree that quoting LWG 3166 is no longer useful. |
Right, I've just added it. |
3ab0d20
to
e95cd59
Compare
61848f2
to
9619476
Compare
and adjust cross-references to container requirements tables throughout the standard library.
where "Effects: Equivalent to" wording is used.
We've wanted to get rid of the huge requirement tables since ages. Here's a specific suggestion, converting [re.req] as a guinea pig. Note that this is a fairly mechanical conversion, avoiding larger rephrasing.
Fixes #120.
Fixes #4785
Fixes #78
Fixes cplusplus/papers#1086
Partially addresses #1571.