Classe template - erreur compilation
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:
Citation:
error C2923: 'std::pair' : 'row' is not a valid template type argument for parameter '_Ty1'
Voici ma fonction:
Code:
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:
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