Скажите, что я делаю не так? Маленькая прога:
1. Файл xxx.h
#ifndef XXX_H
#define XXX_H
template <class TYPE>
class xxx {
public:
xxx();
~xxx();
TYPE x[10];
int y;
};
#endif
2. Файл xxx.cpp
#include "xxx.h"
template <class TYPE> xxx<TYPE>::xxx()
{ ... }
template <class TYPE> xxx<TYPE>::~xxx()
{ ... }
3. Файл main.cpp
#include "xxx.h"
typedef xxx<int> xxxint;
int main(int argc, char *argv[])
{
xxxint l;
return EXIT_SUCCESS;
}
На это дело компилятор выдаёт:
main.o: In function `main':
undefined reference to `xxx<int>::xxx(void)'
undefined reference to `xxx<int>::~xxx(void)'
undefined reference to `xxx<int>::~xxx(void)'
Я чего-то не въеду. При использовании шаблонов надо какую-то опцию дополнительную компилятору прописывать? Помогите, пожалуйста. Я в растерянности. Не знаю даже с чего начинать, чтобы найти ошибку. У меня FreeBSD 4.4. Работаю в Kdevelop (хотя это вряд ли имеет значение).
Заранее спасибо!