Search code examples
c++programming-languageslanguage-featuresaop

Call/Return feature of classic C++(C with Classes), what modern languages have it?


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?


Solution

  • 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().