Скажите, что я делаю не так? Маленькая прога: 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 (хотя это вряд ли имеет значение). Заранее спасибо!