[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PPlay Release

Jan Ekholm wrote:

>>>>BTW: egcs 1.1.x still has problems with template functions
>>>But it can at least link them without problems. I know there are some
>>Only if you use them in the same source file. If you want to implement them
>>in one file and use them in another (both compiled seperately), you'd need
>>to use the "export" keyword - which egcs doesn't support yet.
>Hmm? I don't get that. So you mean that I can't create a templatized
>'btree' in the files 'btree.h' and 'btree.cpp' and then use it in a file
>'use_btree.cpp' by just including 'btree.h' and linking in 'btree.o'?
>Weird. I do this all the time with Zombie. Please don't tell the compiler
>that it really can't do what it does... :-)

That's a template *class*, not a template *function*. I *think* there's a

I checked it again. It doesn't work.

--------------- xx.h
#ifndef XX_H
#define XX_H

template <class c> void print (c C);


--------------- xx.cc
#include <iostream>
#include "xx.h"

template <class c> void print (c C)
	cout << C;

--------------- main.cc
#include "xx.h"

int main (void)
	int MyVal = 200;

	print (MyVal);

	return 0;

g++ -c xx.cc
g++ -c main.cc
g++ xx.o main.o -o main
  main.o: In function `main':
  main.o(.text+0x12): undefined reference to `void print<int>(int)'
  collect2: ld returned 1 exit status



Drive A: not responding...Formatting C: instead