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.