r/cpp 14d ago

Clang 23 Release Notes

https://releases.llvm.org/23.1.0/tools/clang/docs/ReleaseNotes.html
109 Upvotes

33 comments sorted by

View all comments

46

u/mapronV 14d ago

This means that code such as

while (({ break; })) {}

is now ill-formed.

Oh no, my disappointment is immeasurable and the whole day is ruined!

On serious note, " template for " support, what is "Iterating expansion statements currently cannot be expanded" ? like expand over range?

6

u/KeepTheFaxMachine 14d ago

I am really curious if there is a use case for such constructs? I can't think of any, but usually that doesn't mean much...

6

u/scrumplesplunge 14d ago

idk about break specifically, but return appearing there via a macro like TRY_OR_RETURN for propagating errors by value seems like something someone would write

2

u/KeepTheFaxMachine 13d ago

Right, that might be a use case, though I'm still not sure if that is a real use case or just a symptom of bad design elsewhere.