J'ai une classe:problème avec la conversion
template<class T>
class MyClass
{
public:
class Iterator {
public:
Iterator(MyClass<T>&){/*some code*/};
};
operator Iterator();
Iterator& begin();
};
template<class T>
MyClass<T>::operator typename MyClass<T>::Iterator()
{
return MyClass::Iterator(*this);
}
template<class T>
typename MyClass<T>::Iterator& MyClass<T>::begin()
{
return *this;//<---------------cannot convert from MyClass to MyClass<T>::Iterator
}
Pourquoi ai-je une erreur? J'ai fourni un opérateur de conversion, donc tout devrait bien se passer.
Vous pouvez tout aussi bien supprimer la conversion, car le constructeur d'Iterator autorise déjà la même conversion. – UncleBens