On Thu, Aug 22, 2024 at 7:19 PM Christoph Rüthing <christoph@xxxxxxxxxxxxx> wrote: > > ... it still compiles without any warning, but now the generated assembly contains an unconditional __cxa_rethrow. So how does omitting the curly braces change the interpretation of this code? I guess this is a case of the function try syntax. I do not know if it applies to destructors as well, but this seems to be the case. I only knew about it in the context of constructors: https://www.learncpp.com/cpp-tutorial/function-try-blocks/