Bonjour,
Je ne comprends pas pourquoi le code suivant ne compile pas (g++ rale car il
ne trouve soit disant pas Test<int>::Test() et Test<int>::~Test() au
linkage).
//main.cpp
#include "test.h"
//marche si j'inclu le test.cpp ici
//mais ca ne me parait pas tres élégant...
int main()
{
Test<int> t;
return 0;
}
//test.h
#ifndef TEST_H
#define TEST_H
template<class T> class Test
{
public:
Test();
~Test();
};
#endif
//test.cpp
#include "test.h"
#include <iostream>
template<class T>
Test<T>::Test()
{
T t;
std::cout << "Test()\n";
}
template<class T>
Test<T>::~Test()
{
std::cout << "~Test()\n";
}
Merci.
Nicolas.