Justin Johansson wrote: > C++ constructors/destructors and stack-unwinding mechanism > are considered FREAKING AWESOME. Ok, good. Now write (using C++ RAII) the following where both transactions must succeed or neither: void foo() { A(); scope (failure) undo_A(); B(); scope (failure) undo_B(); writeln("A and B succeeded!"); }