Bonjour,

j'ai un petit souci de compilation en utilisant un template tout simple voici mon bout de code :

Dans le .h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
class MyClass
{
 
   template<typename T>
   BOOL isFI(const std::string &Str);
 
public :
 
   MyClass();   
}
Dans le .cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MyClass::MyClass
{
   s="2.3"
   isFI<int>(s);        // ne compile pas, erreur : "type 'int' unexpected"
   isFI<float>(s);     // ne compile pas, erreur : "type 'float' unexpected"
}
 
template<typename T>
BOOL MyClass::isFI(const std::string &Str)
{
	std::istringstream iss (Str);
	T tmp;
	return (iss>>tmp) && (iss.eof());
}
Est ce que je dois défninir T avec int et float en utilisant un typedef ?

Merci d'avance