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 :

error: invalid conversion from std::vector<double> (*)(void*..) to void (*)


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    amateur autodidacte - roboticien
    Inscrit en
    Mars 2022
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activit� : amateur autodidacte - roboticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2022
    Messages : 1
    Par d�faut error: invalid conversion from std::vector<double> (*)(void*..) to void (*)
    Hello les gars, (et filles)
    Bon, je suis roboticien, codeur en python, et newbie en C++.
    Je suis en train de gal�rer avec mon code, pour programmer mon IMU.

    Je dois convertir une fonction void en std::vector<double>(10), afin d'avoir le retour de l'imu, en fin d'appel.
    Autant vous dire que je suis une quiche en pointeurs et autres trucs du genre, lol (laissez-moi le temps d'apprendre...Mais bon, je suis impatient)

    Voici mon message d'erreur :

    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
    myahrs+$ make all
    g++ -O2 -std=c++11   -c -o myahrs+_node.o myahrs+_node.cpp
    In file included from myahrs+_node.cpp:1:
    myahrs+_imu.hpp: In function ‘void Imu_data(const char*, int)’:
    myahrs+_imu.hpp:56:35: error: invalid conversion from ‘std::vector<double> (*)(void*, int, WithRobot::SensorData*)’ to ‘void (*)(void*, int, WithRobot::SensorData*)[-fpermissive]
       56 |     sensor.register_data_callback(callback_data, &sample_counter);
          |                                   ^~~~~~~~~~~~~
          |                                   |
          |                                   std::vector<double> (*)(void*, int, WithRobot::SensorData*)
    In file included from myahrs+_imu.hpp:10,
                     from myahrs+_node.cpp:1:
    myahrs_plus.hpp:3051:43: note:   initializing argument 1 of ‘void WithRobot::MyAhrsPlus::register_data_callback(void (*)(void*, int, WithRobot::SensorData*), void*)3051 |         void register_data_callback(void(*callback)(void* context, int sensor_id, SensorData* sensor_data), void* callback_context) {
          |                                     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    make: *** [<commande interne> : myahrs+_node.o]


    Un peu d'aide m'aiderait bien � avancer...Merci a tous(tes)

    https://github.com/graiola/wolf_ylo2...9f47/myahrs%2B

    Je ne sais pas si c'est la bonne proc�dure ?!
    Merci les gars.
    Vincent

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je pense qu'il va falloir que tu fasses deux fonctions (possiblement avec une qui wrappe l'autre pour supprimer le retour), parce que visiblement il y a quelque part du code qui exige une fonction ne retournant rien.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre �clair� Avatar de Suryavarman
    Homme Profil pro
    D�veloppeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : D�veloppeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par d�faut
    Essaie d'appeler ainsi la fonction register_data_callback(void(*callback)(void* context, int sensor_id, SensorData* sensor_data), void* callback_context):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    sensor.register_data_callback(&callback_data, &sample_counter);
    Je te conseillerais te jeter un �il � la notion de �bind� au lieu d'utiliser des pointeurs sur fonction.
    https://en.cppreference.com/w/cpp/ut...unctional/bind

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 12
    Dernier message: 23/03/2018, 11h10
  2. R�ponses: 3
    Dernier message: 27/09/2011, 15h53
  3. R�ponses: 8
    Dernier message: 15/03/2011, 17h14
  4. error: invalid conversion from `const wxChar*' to `CHAR*'
    Par barbarello dans le forum wxWidgets
    R�ponses: 16
    Dernier message: 31/01/2006, 11h28
  5. R�ponses: 2
    Dernier message: 24/12/2005, 11h37

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