Это может быть глупый вопрос, но я не мог найти ответ после нескольких часов поиска.
Используя AspectC ++, мы можем определить pointcuts, которые представляют что-то, что после совпадения перехватывается. Например, я могу сделать
pointcut pc() = call("% Base::%(...)");
так что любой advice
который использует pointcut pc
перехватит любой вызов некоторого метода класса Base
, Это работает, даже если позже подкласс Sub
из Base
создано: pc
будет перехватывать вызовы методов Sub
также. Теперь я хочу перехватить методы только из Sub
то есть методы Sub
которых нет в Base
, Как мы можем сделать pc()
перехватить любой метод любого подкласса Base
что в конечном итоге создано, но не методы Base
сам?
Задача ещё не решена.
Других решений пока нет …