Recent C++ changes seem like polishing your firewood before burning it. Yes, they make perfect sense, but often they are a fix to a problem that committee introduced by cutting down previous proposals (e.g. forcing lambdas to be single return statement, then relaxing it).
Half of new features feel like "how to make STL implementation less embarassing".
Meanwhile there still is no language support for e.g. debugging constexpr, or printing internal private state of objects in 3rd party code.
How could a debugger make sense of "internal private state of objects in 3rd party code"? Only a portion of the stack frames of linked functions (input parameters coming from known code, maybe expected return values) has a presumable type.
> forcing lambdas to be single return statement, then relaxing it
At no point were lambdas single return statement. You might be confusing it with some other language feature. Or language.
Compile time debugging? Is #warning not good enough?
> printing internal private state of objects in 3rd party code
That is more a dynamic monkey patching programming language kind of thing.
> "how to make STL implementation less embarassing".
The "STL" part of the standard library - containers especially but not just that - has an outdated interface, and suffers from ABI being stuck:
https://cor3ntin.github.io/posts/abi/
so it's embarrassing regardless.
> there still is no language support for e.g. debugging constexpr, or printing internal private state of objects in 3rd party code.
Actually, reflection might make it easier to do that. Supposedly, you should be able to get a member pointer to the private member you're interested in (or even do it dynamically by iterating over all members, and figuring out which one you like), from that and an actual object obtain a regular pointer, and finally dereference it.