Daniel Stone
Tue, 23 Sep 2003 14:16:48 -0700
On Tue, Sep 23, 2003 at 02:16:13PM +0200, Jens Thoms Toerring wrote: > I am trying to compile the CVS version of aspseek on IRIX with > gcc 3.3.1 (when using the IRIX compiler the make process stops with > some linker problems that I wasn't able to figure out, and, no, I > can't use a different gcc version, sorry). My current problem is > with > > [...] > > in class CPtr from ccom.h when compiling qparser.cpp. It compiles > without problems on Linux with gcc 3.2 but with 3.3.1 it complains, > error message is appended to the end of the mail. > > I have a feeling that this might be related to the 'IUnknown' stuff > in "void Release()". I grepped through all the sources as well all > headers I could find on both machines but 'IUnknown' doesn't exist > anywhere. Interestingly, with gcc 3.2 one can replace 'IUnknown' > with whatever one wants (e.g. 'Blablabla') and it still compiles. > How it manages to figure out which Release() function is to be > used isn't clear to me. The only thing I could find out about > something called 'IUnknown' in C++ is some COM related stuff from > M$. So, is there any way to get around this problem? Hi Jens, I encountered this problem and filed a bug upstream. It turns out that gcc3.3's template parser is badly broken (surprise surprise), and thus doesn't deal with the case where CWord1 is included in a CPtr, because CWord1 is descended from a CPtr (I think, might be the other way around). There's no easy way to work around this - the gcc people told me to just wait for 3.4, because the parser's fixed there. :( -- Daniel Stone <[EMAIL PROTECTED]> Developer, Trinity College, University of Melbourne
pgp00000.pgp
Description: PGP signature