Message-ID: <373D6221.405F04B5@geocities.com> From: Andrew Geers X-Mailer: Mozilla 4.5 [en] (Win98; I) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Problem with Templates Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 49 Date: Sat, 15 May 1999 12:03:22 GMT NNTP-Posting-Host: 195.8.86.138 X-Complaints-To: abuse AT clara DOT net X-Trace: nnrp2.clara.net 926769802 195.8.86.138 (Sat, 15 May 1999 13:03:22 BST) NNTP-Posting-Date: Sat, 15 May 1999 13:03:22 BST To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Templates appear to work perfectly in DJGPP at first glance, but if when I tried to separate my class definition into a separate CPP file and add it to a project file I start getting problems: I've put the following code in 'header.h' and #included it in all of my CPP files in the project: template class TEST { private: T *testpointer; public: void testmethod(T *point); } Then in testdef.cpp (which is included in the project) I have the following definition: template void TEST::testmethod(T *point) { testpointer=point; } However, when in main.cpp (which is also in the project) I try the following code the linker complains: void main() { TEST testclass; int a=5; int *b=&a; testclass.testmethod(b); } The linker says "main.cpp(..) Error: Undeclared reference to 'TEST::testmethod(int *)'" However, it works perfectly if I get rid of testdef.cpp and put the definition of testmethod in header.h or at the top of main.cpp, so it doesn't look like it's anything to do with my code, but rather something to do with the linker. Does anybody know if this is the case, and if so, what should be done? Thanks in advance, Andrew Geers