Bonjour,

J'essaye de créer une classe de matrice à partir d'un std::map<std::pair<I,I>,T>
avec par exemple I := unsigned int et T := double

Lorsque je compile, j'ai l'erreur suivante:
error C2923: 'std::pair' : 'row' is not a valid template type argument for parameter '_Ty1'
Voici ma fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
template<class T,class I>
inline T gMatrix<T,I>::operator() (I row, I col) const
{
    if (row >= rows_ || col >= cols_)
       throw ("Matrix subscript out of bounds");
 
	//we look if the element already exists
	std::map<std::pair<I, I>, T>::iterator iter = data_.find(std::pair<row,col>);
	if(iter != data_.end())	return iter->second; //yes, we return it
	else return 0;
}
J'utilise ma classe cette manière dans mon programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
gMatrix<double,unsigned int> m(10,10);
	std::cout << m(0,0);
Je ne comprends pas pourquoi ça ne fonctionne pas!
Merci de votre aide
Cordialement,
Rodrigue