On page 57 of The Design and Evolution of C++, Dr. Stroustrup talks about a feature that was initially part of C with Classes, but it isn't part of modern C++(standard C++). The feature is called call/return
. This is an example:
class myclass
{
call() { /* do something before each call to a function. */ }
return() { /* do something else after each call to a function. */ }
...
};
I find this feature very interesting. Does any modern language have this particular feature?
Modern C++ emphasizes the principle of resource acquisition is initialization (RAII). The idea is simple. Resources (heap memory, file handles, sockets, and so on) should be owned by an object. That object creates, or receives, the newly allocated resource in its constructor, and deletes it in its destructor.
Bjarne Stroustrup created C++, one of the most popular embedded programming languages. He is still working on the latest revisions of the C++ standard.
The modern C++ equivalent would be a sentry object: construct it at the beginning of a function, with its constructor implementing call()
, and upon return (or abnormal exit), its destructor implements return()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With