[aspectc-user] calls to members through a pointer to member
    Panu Bloigu 
    panu.bloigu at gmail.com
       
    Wed Nov 28 12:24:56 CET 2007
    
    
  
Hello.
It seems that ag++ currently can't trap calls to member methods if the 
member is called through a pointer-to-member, e.g.:
=============================================================
void (Base::* ptr_to_member)() = &Base::some_method;
Base b;
(b.*ptr_to_member)(); // Trap this call...
// with this advice:
advice call("void Base::some_method()") : before(){/* ... */}
=============================================================
Same seems to go for function calls occurring through a 
pointer-to-function.
Is this correct, or do I need to use some special match expression in 
the call() join point function argument to trap function/method calls 
occurring through a pointer-to-function/pointer-to-member?
If this indeed is possible, and I'm doing something wrong, it would be 
interesting to hear how this feature is implemented. As far as I can 
see, weaver has to somehow gain awareness of the actual value (the 
pointed-to function/method) of a pointer-to-function/pointer-to-member 
to be able to tell the target of the call.
--Panu
    
    
More information about the aspectc-user
mailing list