Hi all.<br>I've a simple and dummy question about vocabulary.<br><br>There is a simple code:<br><br>//a.h<br>aspect Trace<br>{<br> advice execution("% foo(...)"): before() <br> {<br> std::cout<<"Before foo"<<std::endl;<br>
}<br>};<br>//=========================<br><br>//a.cpp<br>#include <iostream><br><br>void foo(int i){std::cout<<"foo/int: "<<i<<std::endl;}<br>void foo(const std::string& s){std::cout<<"foo/string: "<<s<<std::endl;}<br>
<br>int main()<br>{<br> foo(4);<br> foo("Hi World");<br> return 0;<br>}<br><br>In this exemple , we have:<br><br>2 joins points: void foo(int){} and void foo(const std::string& s){}<br>1 pointcut: (call("% foo(...)") composed by 1 pointcut expression (call("% foo(...)"))<br>
<br>If the advice had been advice call("% ...::foo(...)") && within("A"): before(), we would have had:<br>The same joints points <br>1 poincut composed by 2 poincut expression call("% ...::foo") and within("A") which are bind by &&.<br>
<br>Am I right ?<br><br>Thanks.<br>David Côme.<br><br><br>