Есть ли способ легко реализовать шаблон класса прокси в C ++? Не использовать AspectC ++ или другие тяжелые инструменты, просто встроенный макрос или шаблоны.
Объясняя, что я хочу:
class base_class
{
public:
virtual void method_one() { ... }
virtual void method_two() { ... }
}
class class_proxy : base_class
{
protected:
void before_any_method_call() { do stuff };
void after_any_method_call(std::exception* ex) { do stuff }
}
Вот сценарий. Класс, который я хочу прокси (base_class), выполняет удаленные вызовы, однако, когда сеть не работает, он выдаст исключение транспорта, полученное из std :: exception. В base_class имеется множество методов, и я хотел бы перехватить исключение транспорта, ответить пустым результатом и восстановить соединение перед следующим вызовом метода.