On Wed, Mar 27, 2024 at 12:51 AM Klemens Morgenstern via Boost < boost@lists.boost.org> wrote:
On Wed, Mar 27, 2024 at 2:32 AM Artyom Beilis via Boost
2. Transaction handling seems to be very simplistics.
The main reason here is that the sqlite api doesn't have any transaction handling either, it's just more sql queries. With boost.scope handwriting a guard is trivial - and you don't have the issue that you might potentially throw from a destructor.
I agree with Artyom it's a must have. We have it. We use it extensively. FWIW. --DD PS: And yes, throwing from a Dtor is always problematic. That's a pain-point in C++. There are ways to detect throwing while unwinding. And there's also Boost.Exception which allows nesting exceptions. I'm no expert. Despite the pitfalls, we heavily depend on it...