• [^] # Re: Je n'aime pas la SFML

    Posté par (site web personnel) . En réponse à la dépêche SDL ou SFML ? Ne choisissez plus, prenez Gamedev Framework (gf). Évalué à 9.

    Ça, ça ne va pas changer, je déteste les exceptions en C++. Et je ne vois pas bien où je pourrais en mettre.

    Bienvenue en 1989 :/

    En interne, il y a quelques classes qui utilisent RAII. Maintenant, où est-ce que tu en verrais dans l'API publique ?

    Je déteste vraiment avoir ce genre de code :

    Music m;
    if (!m.loadFromFile("foo")) {
     // gestion de l'erreur 
    }

    Cela signifie que toutes tes fonctions membres vont devoir vérifier que l'état de l'objet Music est bien ouvert et fonctionnel. Alors qu'un constructeur qui throw rend tout simplement impossible d'utiliser l'objet. Certains vont dire que c'est une hérésie de lever une exception dans un constructeur, mais c'est tout simplement la bonne méthode.

    Avec un constructeur qui throw je sais que mon objet sera valide tout au long de sa vie.

    Music m("foo.ogg");
    // Par buffer (vector, array), etc
    Music m(buffer.begin(), buffer.end());
    // Stream?
    std::istream customstream
    Music m(customstream);

    J'ai regardé rapidement ton projet, pour le ResourcesManager, tu pourrais retourner des std::unique_ptr plutôt que des pointeurs bruts. Ça marquera complètement l'ownership et tu pourras toujours retourner un std::unique_ptr null si l'objet n'est pas trouvé :)

    AI is a mental disorder