|
|
|
|
|
by gpderetta
762 days ago
|
|
> In single-ownership languages like C++, Rust, etc. we've been conflating the destructor to handle two things: fulfilling the object's final purpose, and handling exceptions/panics. Well, from a transactional point of view, a good design for C++ classes is to have implicit destructors (i.e. a conventional C++ destructor) rollback any change, while explicit ones would commit. This works very well with exceptions. What C++ lacks is the ability to statically prevent you from calling an explicit destructor twice, but should be doable, for example, in rust. |
|