Si je veux créer un modèle de fonction, où le paramètre de modèle n'est pas utilisé dans la liste des arguments, je peux le faire ainsi:modèles de l'opérateur en C++
template<T>
T myFunction()
{
//return some T
}
Mais l'invocation doit spécifier le « T 'utiliser, car le compilateur ne sait pas comment le résoudre.
myFunction<int>();
Mais, supposons que je voulais faire quelque chose de similaire, mais pour l'opérateur '[]'. modèle
T SomeObject::operator [ unsigned int ]
{
//Return some T
}
Est-il possible d'invoquer cet opérateur? Cela ne semble pas valide:
SomeObject a;
a<int>[3];
Bien, je ne savais pas que vous pouviez faire ça! Mais oui, le faire de cette façon défait la gentillesse d'utiliser une surcharge de l'opérateur du tout. – Scott
En effet. Habituellement, il est renommé 'get()'. – GManNickG
L'opérateur [] n'est-il pas censé renvoyer une référence? – navigator