#Cpp #CppVarna #WG21: Friday notes
I hung out in EWG all day.
- P2884r0, P2883r0: We didn't agree to make offsetof and assert into keywords
- We enjoyed a "7 min presentation" (actually 45 mins) on why functions with narrow contracts should not be noexcept; more to come in Kona
- P2814r0, P2786r1: Absolutely no meeting of minds on trivial relocatability; EWG seems to want a full, general solution to relocation. But we discouraged everyone who proposed relocation features over the last 10 yrs…
#Cpp #CppVarna #WG21: Thursday notes 2/2
Otherwise, we had SG21 Contracts meeting all day. We agreed to add link-time replaceable contract violation handler functions to the Contracts proposal.
I'm not entirely convinced that this is actually necessary for a "minimal viable product"; we are asymptotically approaching the feature set of the previous "full fat" Contracts proposal that was abandoned for C++20.
However, if we are going to have it, then this is fine.
#Cpp #CppVarna #WG21: Thursday notes 1/2
First session in EWG — P2795r1 on erroneous behaviour.
@JamesWidman raised this on Mastodon today, completely independently. I agree with @thephd's views on this.
IMO the only reasonable way to deal with problems caused by undefined behaviour is to define the damn behaviour, if at all possible.
Erroneous behaviour is WG21 handing to implementers the responsibility for making C++ more difficult to write bugs in. We should make the difficult decisions.
#Cpp #CppVarna #WG21: Wednesday notes
Morning in EWG, afternoon in SG23 Safety & Security
- P2169r3: Finally, _ as a placeholder identifier! My most wanted C++26 paper approved
- P2839r0: Author has thought deeply about relocation & developed a detailed proposal, but struggled to compellingly present it
- P2771r1, P2878r1: Continued intensive work to avoid the inevitable fact that resource safety in C++ requires lifetimes in the type system.
No, the Core Guidelines have not already solved it
#Cpp #CppVarna #WG21: Wednesday lunchtime thoughts:
The first time you present your paper in the Evolution WG, it is essential to get everyone to:
- understand the problem you are seeking to solve
- agree that it is a problem that needs to be solved in the ISO language standard
There have been multiple presenters at this conference who have not managed to do this.
Remember that your ideas may need to be presented in a different way in an oral presentation. Consider preparing some slides.
#Cpp #CppVarna #WG21: Tuesday notes
Morning in Evolution, afternoon in SG21 Contracts
- P2561r2: new control flow operator useful for explicit error handling; I don't like the syntax
- P2881r2: we don't need another incompatible way to write coroutines
- D2552r3: agreed least bad wording solution
We narrowed in on some semantics for contract violation handlers, but they feel pretty complicated to me. The problem with "minimal viable product" is no-one agrees on the meaning of "viable".
Opening plenary, then spent the rest of the day in Evolution WG.
CWG1699: "Hidden friend" functions continue to be a nasty hack and this issue illustrates it well
P2552r2: Most standard attributes should either not be attributes or not be standard
P1112r4: We need class layout flexibility; not sure this proposal is the right approach.
P2818r0: I love this for improving customisation points, but EWG seems unconvinced.
Most papers lacked consensus