IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[C++14] Problème avec un vector<unique_ptr>


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2014
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 227
    Par défaut [C++14] Problème avec un vector<unique_ptr>
    Bonsoir à tous , je sais que j'ai déjà écrit un post il y à quelque heures mais j'ai un problème sans aucun rapport et que j'essaye de résoudre sans succès depuis hier
    Alors voilà, j'ai des entités et là je gère leur physique, donc je me suis occupé des collions( pour l'instant en externe ), etc.. Et là je m'occupe de la gravité. J'ai donc ce code ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    void updatePhysics( std::vector<std::unique_ptr<Entity>> &v_entity, sf::Vector2f const& gameSize )
    {
        ...
        std::vector<std::pair<bool, size_t>> entityInFall;
        ///COLLISION TEST
        ...
        for( size_t i{0}; i < v_entity.size(); ++i )
        {
            if( v_entity[i]->position.y > 0 )
            {
                entityInFall.push_back(std::make_pair(true,i));
            }
        }
     
        ///GRAVITY TEST
        ...
    }
    Ce code me donne cette erreur alors que si je le met dans mon main je n'es aucun problèmes. Voici l'erreur en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    B:\Workspace\C++\Gravity\Function.cpp|11|error: '(&(& v_entity)->std::vector<_Tp, _Alloc>::operator[]<std::unique_ptr<Entity>, std::allocator<std::unique_ptr<Entity> > >(i))->std::unique_ptr<_Tp, _Dp>::operator-><Entity, std::default_delete<Entity> >()->Entity::position' does not have class type|
    Donc, il prend position pour une class ?
    je comprend pas vraiment l'erreur, qulqu'un peux m'aider ?
    Merci ^^"

  2. #2
    Membre éprouvé
    Homme Profil pro
    sans activité
    Inscrit en
    Janvier 2016
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : sans activité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 76
    Par défaut
    Personnellement, je n'ai encore jamais travaillé avec les unique_ptr, donc je ne suis pas sûr de pouvoir t'aider efficacement.

    J'ai déjà eu des erreurs ressemblants, je dirai que le compilateur considère ton v_entity[i]->position.y comme une fonction/méthode.

    On arrive à une partie de ton code qui me semble bizarre, c'est quoi ces accolades size_t i{0} ligne 8?

    Je ne sais pas si ton problème vient de là mais je n'est jamais vu ça avant.

    Éclaire moi STP.

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Je dirais qu'il manque l'include de la classe Entity.

    @rnr72: la construction avec {} est la forme universalisée des initialisations (direct-list-initialization).

  4. #4
    Membre éprouvé
    Homme Profil pro
    sans activité
    Inscrit en
    Janvier 2016
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : sans activité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 76
    Par défaut
    jo_link_noir, oui, pour des struct, des listes, tableaux, ... je n'avais jamais vu ça pour initialiser une variable simple dans un for. Merci pour l'info.

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2014
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 227
    Par défaut
    J'ai bien mis l'en-tête Entity.hpp car d'autres membre de cette classe fonctionne ailleurs bien que ce ne soit pas la même utilisation.
    Et pour le size_t i{0} dans le for, il faut savoir que c'est tout simplement du c++ moderne, les accolades, c'est la norme.
    Donc, on ne fait plus unsigned int i = 0, mais unsigned int i{0}
    Bref, du coup vu que j'ai bien inclut mon Entity, où pourrait être le problème ^^ mais en tout cas déjà merci de m'avoir répondu.

  6. #6
    Membre éprouvé
    Homme Profil pro
    sans activité
    Inscrit en
    Janvier 2016
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : sans activité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 76
    Par défaut
    J'ai appris des choses, c'est cool!

    Pourrais-tu s'il te plait nous fournir Entity.hpp et .cpp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debutant] problème avec les vectors
    Par julien.63 dans le forum Langage
    Réponses: 6
    Dernier message: 21/12/2007, 22h53
  2. problème avec class vector
    Par abdelmajid_daosabah dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/11/2007, 22h40
  3. Problème avec les vector
    Par lostchina dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/03/2007, 10h51
  4. Problème avec std::vector
    Par dhoorens dans le forum SL & STL
    Réponses: 4
    Dernier message: 31/12/2006, 14h27
  5. Problème avec std::Vector
    Par mister3957 dans le forum SL & STL
    Réponses: 8
    Dernier message: 16/02/2006, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo