From: Danny S. <dan...@cl...> - 2007-08-18 10:49:58
|
> -----Original Message----- > From: min...@li... > [mailto:min...@li...] On Behalf > Of Takashi Ono > Sent: Saturday, 18 August 2007 2:04 p.m. > To: MinGW Users List > Subject: Re: [Mingw-users] GCC 4.2.1 and explicit template > instantiation > > > Hi, Greg, > > I am very sorry for posting wrong example. Please test as > follows. GCC 4.2.1 emits > nothing while GCC 3.4.x emits the member function body. > > ---<test1.cpp>----------------------------------- > #include <stdio.h> > > template<typename T> class foo > { > static int mf(int); > }; > > template class foo<char>; > > template<typename T> int foo<T>::mf(int) > { > printf("definition\n"); > } If you do the instantiation after completing the type definition like so: #include <stdio.h> template<typename T> class foo { static int mf(int); }; template<typename T> int foo<T>::mf(int) { printf("definition\n"); } template class foo<char>; then the old behaviour is obtained. This is not mingw specific. Please follow up on gcc bugs list Danny |