I ответил на этот вопрос и Potatoswatter ответил также как
Современный эквивалент С++ был бы сторожевой объект: постройте его на начало функции, с ее конструктор, реализующий вызов(), и по возвращении (или аномальному выходу), его деструктор реализует
Я не знаком с использованием часовых объектов в С++. Я думал, что они ограничены входными и выходными потоками.
Может ли кто-нибудь объяснить мне о сторожевых объектах С++, а также как использовать их в качестве перехватчика для одного или нескольких методов в классе?
то есть. Как это сделать?
Объекты Sentry очень похожи в самом деле. С одной стороны, они требуют явное инстанцирование (и прошло это), но, с другой стороны, вы может добавить к ним, чтобы они не проверяли только инварианты класса, но некоторые предварительные условия для функции под рукой.