<HTML><BODY><P>Hello,<BR>i am testing the template instance matching in version 0.9 of ac++.</P>
<P>The simple tracing aspect of the AC++ Quick Reference Guide instantiated in this way</P>
<P><FONT face="courier new, courier, mono">aspect TraceMain: public Trace<BR>{<BR> pointcut functions() = call("% Value<int>::%(...)") && within("% main(...)");<BR>};</FONT></P>
<P>has no effect. In this way:</P>
<P><FONT face="courier new, courier, mono">aspect TraceMain: public Trace<BR>{<BR> //pointcut functions() = execution("Value<int>");<BR>};</FONT></P>
<P>it cause ac++.exe crash for memory access violation.</P>
<P>I am using ac++ on Win32 platform with --vc and --skip-bodies-non-prj flags.</P>
<P>The main.cpp is the following:</P>
<P><FONT face="courier new, courier, mono">#include <iostream><BR></FONT><FONT face="courier new, courier, mono"><BR>template <class T><BR>class Value<BR>{<BR>public:<BR> Value(T value): value_(value) {}<BR> </FONT><FONT face="courier new, courier, mono">~Value() {}</FONT></P>
<P><FONT face="courier new, courier, mono"> void dummy()<BR> {<BR> }<BR></FONT><FONT face="courier new, courier, mono">private:<BR> T value_;<BR>};</FONT></P>
<P><FONT face="courier new, courier, mono">int main ()<BR>{<BR> std::cout << "in main\n";</FONT></P>
<P><FONT face="courier new, courier, mono"> Value<int> a(1);</FONT></P>
<P><FONT face="courier new, courier, mono"> a.dummy();</FONT></P>
<P><FONT face="courier new, courier, mono"> std::cout << "Press return to exit...";<BR> std::cin.get();<BR> return 0;<BR>}</FONT></P>
<P>Thanks,<BR>michelangelo riccobene</P></BODY></HTML>