Welk van de twee alternatieven hieronder is beter? Waarom? (Noot: het gaat niet over de stijl.) == Alternatief A void do_something() throw (std::runtime_error); struct A { struct Lock { Lock(Dv::Thread::Monitor& m): m_(m) { m_.enter(); } ~Lock() { m_.exit(); } Dv::Thread::Monitor& m_; }; void f() throw (std::runtime_error); private: Dv::Thread::Monitor m_; }; void A::f() throw (std::runtime_error) { Lock l(m_); do_something(); } == Alternatief B void do_something() throw (std::runtime_error); struct A { void f() throw (std::runtime_error); private: Dv::Thread::Monitor m_; }; void A::f() throw (std::runtime_error) { m_.enter(); do_something(); m_.exit(); }