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

Langage C++ Discussion :

Quelques questions à propos du langage lui même.


Sujet :

Langage C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Quelques questions à propos du langage lui même.
    Bonjour!

    J'ai quelque questions à propos du langages pour savoir si il y a moyen de faire les choses suivantes ou pas.

    -Y a t'il moyen d'allouer un pointeur de fonction sur le tas ? Faire quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void(*func)(int, int, etc...) = new (int args1, int args2, etc...) { //Definition de la fonction ici. }
    Je sais qu'il existe les fonctions anonyme mais celles-ci ont un défaut : le compilateur ne peux pas déduire leur type.
    Ce qui alourdi la syntaxe dans le cas de l'utilisation d'un wrapper sur la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wrapper.setParams<std::function<void(int arg1, int arg2, etc...)>> (val1, val2, etc...);
    Hors que je n'ai pas besoin de passer de paramètre template pour les fonctions membres et les fonctions non membre, car, le compilateur peut déduire automatiquement le type de la fonction dans ce cas la.

    L'avantage du wrapper est que je peux stocker le pointeur de fonction quelque part (dans un tableau par exemple), et changer les paramètres de la fonction n'importe ou dans le programme comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wrapper.setParams<std::function<void(int arg1, int arg2, etc...)>, 1, 2> (val1, val2);
    Ce qui n'est pas possible avec std::bind et les placeholders.

    Seconde question : est-il possible de récupérer la signature d'une fonction membre d'une classe ? (Via le binaire de la classe par exemple)

    Ce que je voudrais c'est enregistrer les signatures des fonctions membre d'une classe dans une autre classe automatiquement à la compilation, afin de les appeler à l'exécution, faire un genre de système de réflexion en gros, ceci dans le but de pouvoir appeler des fonctions template virtuelle de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    baseClass.call(Signature, object, val1, val2, etc...)
    Pour l'instant j'enregistre tout ça manuellement dans le main à l'aide de macros mais je voudrais savoir si il n'y a pas moyen de faire un système pour les enregistrer automatiquement.

    Voilà merci d'avance pour vos réponses.

    Si je demande ça c'est parce que je suis entrain de coder une bibliothèque ici :
    http://lolilolightdevblog.wordpress.com/
    Dernière modification par Invité ; 30/08/2014 à 19h44. Motif: Ajour des balises CODE

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 13/06/2011, 09h28
  2. Réponses: 0
    Dernier message: 21/02/2011, 15h58
  3. Réponses: 1
    Dernier message: 11/03/2010, 12h01
  4. Quelques questions à propos de DreamShield
    Par kahoerre dans le forum Dreamshield
    Réponses: 10
    Dernier message: 10/06/2009, 09h44
  5. Quelques question à propos des technologies RAID
    Par DranDane dans le forum Composants
    Réponses: 6
    Dernier message: 12/08/2008, 12h40

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