Well, I don't agree with the approach of showing a list of keywords to the students. Probably not in any phase. Maybe in the very advanced one, when they already know most of the keywords anyway.
Similarly, our guidelines document recommend presenting only a small subset of C++ types to the beginner. Again, I know that some teachers just throw a table full of types on the confused student. Seems like here, as a group, we think this is the wrong approach.
As I mentioned in the previous message, we probably have to read better the relevant proposals to understand why it's needed, but I believe the `consteval` paper when it claims that it was requested by reflection group. If everybody wants reflection, they have to accept that some steps are needed to get to this target :)
1. Please note, embedded was mentioned just as a wild guess of mine. It isn't mentioned in the rational of the paper or something like this. Maybe there are enough use-cases that I'm not aware of.
2. Adoption of C++ in embedded is getting better. See Odin Holmes talks, for example. But this isn't the point here anyway.
3. It's interesting note that the original paper actually suggested it as an attribute. It was in the discussions of the first revision that the decision was made to "promote" it to a real keyword.
Again, I can't share your feeling here, sorry. I think it's wrong to expect everyone to know and understand all the keywords, especially as a beginner.
Wait a minute, I don't expect them to know even all the operators!
Does anyone think it's wise to teach beginners (or even intermediate students) operators like `.*` and `->*`? (BTW, I had to look them up in cppreference to make sure I write them correctly. :) )
(BTW, if beginners should know all the keywords, why shouldn't they know all the standard attributes? I think they should learn pretty early about `[[fallthrough]]` attribute, for example.
So making it an attribute wouldn't help there anyway.)
For the general question about adding new things to the standard:
The points that Stroustrup and others are making about making the language more approachable aren't against adding things to the language, but about adding things that will make it easier to teach and safer to use. And this continuously happening. For example, adding std::ranges complicates the library very much, it's a huge new library (people used to call it STL2). But hopefully, at some point we'll be able to teach only the usage of this library, almost forgetting about the old way to write thing, unless you have to maintain a very old legacy code.
Herb Sutter has a repeating theme in his talks over the last few years about how adding things to the language makes it simpler. I really recommend watching those talks if someone hadn't a chance for it before.
The whole point of the teaching guidelines we are writing is that we believe that students don't have to learn all the language, definitely not at once, and we try to find the right subset that is useful and can be taught gradually.