#ifndef __Abstract_Trace_ah__ #define __Abstract_Trace_ah__ #include using namespace std; aspect AbstractTrace { public: pointcut pc1() = call("% ...::B::%(...)"); pointcut pc2() = execution("% ...::B::%(...)"); advice pc1() : after () { cout << "after call " << JoinPoint::signature () << "\n"; } advice pc2() : after () { cout << "after execution " << JoinPoint::signature () << "\n"; } }; #endif // __Abstract_Trace_ah__