Ilya, thanks VERY MUCH. This solved my problem in a flash. My application (38 thousand lines, compared to the 6 lines of my test-file) now compiles and links properly in g++-3, and, with a preprocessor switch, in g++-2 as well. In case other folks are interested, below is how I now do it (sorry that I test for __GNUC__; this code is meant to work for many other compilers as well) ...
#if defined(__GNUC__) #if __GNUC__ == 3 void std::reverse(std::vector<double>::iterator, std::vector<double>::iterator); #else template void std::reverse(std::vector<double>::iterator, std::vector<double>::iterator); #endif #endif Thanks very much for the help, delivered so quickly!! Dan. On 3 May 2001, Ilya Martynov wrote: > Date: 03 May 2001 17:50:45 +0400 > From: Ilya Martynov <[EMAIL PROTECTED]> > To: Dan Kelley <[EMAIL PROTECTED]> > Cc: debian-devel@lists.debian.org > Subject: Re: Q about g++-3 and template instantiation > > > DEK> Attached is a 6-line C++ test program (which does nothing more than > DEK> instantiate templates) that compiles in g++-2, with > > DEK> g++ -c test-template.cc > > DEK> but for which g++-3 yields the error messages: > > DEK> test-template.cc:4: non-template used as template > DEK> test-template.cc:6: non-template used as template > > DEK> QUESTION: am I doing something wrong? > > As I understand you want to define specialization of template > function? (I hope I chosed right English words). Specialization of > template function is no longer template - it is function. So you > should not use 'template' keyword. Just remove it. > > -- Dan E. Kelley phone:(902)494-1694 Oceanography Department, Dalhousie University fax:(902)494-2885 Halifax, Nova Scotia mailto:[EMAIL PROTECTED] Canada B3H 4J1 http://www.phys.ocean.dal.ca/~kelley/Kelley_Dan.html