Comment by tialaramex

1 month ago

Volatile compound assignments are nonsense. This incident is up there with std::span when it comes to illustrating how unserious WG21 are when it comes to improving software quality.

The deprecation would get you a warning for this nonsense in new C++ versions. It would still compile as before, but you'd get a warning so that maybe you can write something which isn't nonsense instead - an opportunity to express what you actually meant. But this was unacceptable of course.

You can see some of the same wailing for uninitialized access. Currently draft C++ 26 will just silently initialize your variable to some agreed bit pattern so that you don't incur Undefined Behaviour for uninitialized access by default. This seems to make many of the same people very angry.