Passage de visual à linux: erreur étrange de template
	
	
		Bonjour,
j'ai récemment installé Linux, et g++ (version 4.2), et en compilant ce programme:
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | #include <iostream>
 
template <class T>
class smart_ptr
{
public:
    T data;
	int i;
 
	virtual int get_data() { return i; }
};
 
template <class T>
class wrapper : public smart_ptr<T>
{
	virtual int get_data() {return i; }
};
 
int main()
{
	std::cout << "Hello world!" << std::endl;
	return 0;
} | 
 J'ai une erreur: "i was not declared in this scope" pour la fonction get_data() de wrapper.
Si au lieu de mettre public: smart_ptr<T> je mets un type non template tout va bien (mais j'ai besoin des templates!!)
Pour réussir à le faire passer je dois faire:
	Code:
	
| 12
 3
 4
 5
 
 | template <class T>
class wrapper : public smart_ptr<T>
{
	virtual int get_data() {return smart_ptr<T>::i; }
}; | 
 C'est moche!
Est-ce que j'ai loupé une option de compilation quelque part, parce que je trouve ça vraiment louche?
Merci :D