[aspectc-user] template instantiation regression

Michael Stilkerich stilkerich at cs.fau.de
Mon Mar 8 14:15:54 CET 2010


Hi again,

  in the course of updating AC++ to a current revision I discovered a regression related to template instantiation. Consider the following example (I tried to strip down the example as much as possible while still producing the problem):

------------------  test.cpp  ------------------
class ERROR_inttype_not_available {
};

template< bool FIRST, class A, class B > struct select  {
  typedef A T;
};

template< class A, class B > struct select< false, A, B > {
  typedef B T;
};

template< unsigned BYTES > struct int_t {
  typedef typename select< sizeof(int)==BYTES, int, ERROR_inttype_not_available>::T T;
};


void testfunc(int_t<4>::T i);

void test() {
  testfunc(3);
}

------------------  test.ah  ------------------
aspect Test {
        advice call("% testfunc(...)"): around() {
        }
};

While the above pointcut expression matches the call testfunc(3) with the old AC++ version (ac++ 1.0pre4 (Jun 21 2007)), it does not match with recent builds anymore. 

Regards,
 -Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4809 bytes
Desc: not available
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20100308/6718d42a/attachment.bin>


More information about the aspectc-user mailing list