Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++] Ctor implicitly removed SFML audio.

Sujet résolu
    22 mai 2020 à 16:18:44

    Bonjour à tous,

    Je développe une petite app qui permet de jouer des playlists et des musiques, et qui est basée sur l'API de gestion des sons de SFML (pas de quoi voler très haut). J'ai utilisé le pattern singleton pour programmer la classe qui sert de noyau à l'application (music_context) car je souhaite faire en sorte que l'on puisse l'utiliser en tant que contexte qui envelopperait toutes fonctionnalités en rapport avec le handling de la playlist et de la musique jouée. En effet, je n'ai pas besoin de multiples instances de la classes ou quoi que ce soit, seulement de manipuler des variables globales à un contexte grâce à des fonctions, et je pense que le design pattern singleton n'est pas une mauvaise idée.

    Je vous fournis le code ci-dessous:

    Venons-en au problème:

    En compilant mon code, j'ai remarqué que je ne pouvais pas faire de copie d'un objet sf::Music car le constructeur de copie a implicitement été supprimé. Le problème c'est que j'ai un liste qui contient des pointeurs intelligents sur des musiques, et que la fonction make_unique<class>( obj ) effectue une copie de OBJ.

    Comment pourrais-je stocker mes musiques dans un conteneur, sans avoir à les copier. J'avais pensé à des pointeurs nus, mais ça faillirait à la règle RAII et ça m'apporterait probablement quelques problèmes. Après, ce n'est qu'un petit projet personnel, donc je ne vois pas forcément le mal à utiliser des pointeurs nus. Je ne sais pas. Dites-moi ce que vous en pensez.

    Merci !

    EDIT:

    Sujet "résolu"... Je vais stocker mes musiques via des pointeurs nus. Ca ne posera pas de problème puisque le projet n'est pas de grande envergure et parce que je libère "manuellement" mes ressources lors de la destruction du contexte.

    -
    Edité par Daimyo_ 22 mai 2020 à 19:24:55

    • Partager sur Facebook
    • Partager sur Twitter
      22 mai 2020 à 23:21:49

      Lu', 

      il fallait juste déplacer l'objet en question:

      auto ptr = std::make_unique<class>(std::move(obj));
      • Partager sur Facebook
      • Partager sur Twitter

      Eug

        23 mai 2020 à 18:30:56

        Hello,

        Tite question, pourquoi ne pas avoir utilisé Qt pour ce type de projet ? Ça me semble plus pertinent dans le sens où tu aurais bien plus d'outils pour faire une belle interface et plus facilement qu'avec la SFML :)

        -
        Edité par Guit0Xx 23 mai 2020 à 18:34:55

        • Partager sur Facebook
        • Partager sur Twitter

        ...

          23 mai 2020 à 19:42:55

          Salut ! En fait j’en cherche à faire quelque chose de minimaliste. L’interface graphique est une des caractéristiques que je me suis interdit d’exploiter, pour éviter le temps de chargement de l’application et parce que je préfère faire sobre et simpliste, sans avoir à utiliser des outils que je ne connais pas, et qui risquent de freiner ma productivité. Le but c’est d’ouvrir le terminal et de lancer une playlist xD

          Je n’utilise pas du tout Qt... j’entends souvent parler de son grand potentiel mais pour l’instant je reste dans mon confort. Et puis SFML est vraiment simple à utiliser.

          Mais rien n’empêche de tenter Qt lorsque je serai satisfait de ce que j’aurais développé. D’ailleurs, quelqu’un aurait un cours d’actualité pour apprendre à utiliser ce framework ? Ou la doc est suffisante ?

          • Partager sur Facebook
          • Partager sur Twitter
            23 mai 2020 à 22:33:22

            Daimyo_ a écrit:

            L’interface graphique est une des caractéristiques que je me suis interdit d’exploiter, pour éviter le temps de chargement de l’application et parce que je préfère faire sobre et simpliste, sans avoir à utiliser des outils que je ne connais pas, et qui risquent de freiner ma productivité. Le but c’est d’ouvrir le terminal et de lancer une playlist xD

            Ok j'comprends ^^

            Daimyo_ a écrit:

            D’ailleurs, quelqu’un aurait un cours d’actualité pour apprendre à utiliser ce framework ? Ou la doc est suffisante ?

            Personnellement je n'ai pas eu besoin de cours pour m'y faire, la doc est vraiment bien foutu, elle suffit amplement ! On y trouve de bons exemples d'application ;)

            Si tu trouves que la SFML est fun à utiliser, tu apprécieras tout autant Qt ^^

            -
            Edité par Guit0Xx 23 mai 2020 à 22:36:41

            • Partager sur Facebook
            • Partager sur Twitter

            ...

            [C++] Ctor implicitly removed SFML audio.

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown