Bon mon titre parait assez simpliste (bah des références !! ), mais la question est véritable. Je me demande si ce n'est pas une erreur de conception de ma part, mais voilà un exemple typique :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
sf::Sprite& AnimHandler::getSprite()
{
    for (auto& a : animationsVector)
        if (a.name == currentAnimationName)
            return a.currentSprite;
 
    std::cerr << "impossible d'arriver ici normalement" << std::endl;
   //ici il me manque un return...
}
...sauf que je ne sais pas quoi mettre, pour que cela soit propre... et j'ai deux ou trois warnings dans mon code à cause de cela.

Le commentaire (impossible d'arriver ici), c'est parce que l'utilisateur n'a aucun contrôle ici, et donc aucun risque que le programme atteigne ce point (parce que lui ne fait pas d'erreur d’orthographe^^).

Alors ? Je revois mes types de retour ou vous avez un tuyau ? Ou je manque quelque chose d'énorme ? (ce qui reste possible ^^ )


Edit : bon je sais que je pourrais utiliser les algorithmes de la STL et les lambdas à la place, mais là n'est pas la question.



Edit2 : mon Edit viens de me faire penser à ce que fait std::find ... je renvois animationsVector.end() ? (Mais c'est pas une référence du coup ... ) je me mélange ^^