On Monday, 29 June 2020 at 22:31:12 UTC, Arjan wrote:
So when no inner scope is present, the scope exit 'runs' after the return? Is that indeed expected behavior according to the specification?
Yes. A scope ends at the '}'. Destructors and scope guards execute then, after the return.