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

Boost C++ Discussion :

ptr sur focntion template


Sujet :

Boost C++

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par défaut ptr sur focntion template
    Hi,
    je bloque sur la syntaxe permettant d'avoir un pointeur sur une fonction membre template

    typedef boost::function<template<class T> void (ref(T))> BaseCreateFn;

    pas bon ?

    Preneur d'un exemple

    Merci

    EDIT:

    très précisement je souhaiterais avoir un pointeur sur une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
            template<class InPlaceFactoryT>
            static AncestorType* CreateInstance(InPlaceFactoryT const&_Usine)
            {
                ManufacturedType * pObjet = reinterpret_cast<AncestorType*>(new char[sizeof(ManufacturedType)]);
               _Usine.template apply<AncestorType>(m_pObjet);
     
                return pObjet;
            }

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Je ne crois pas qu'on peut faire des typedef template (dont la syntaxe serait plutot template<class T> function<T> Func; par exemple).

    Mais tu peus toujours tricher un peu en encapsulant ton typedef dans une structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    template<class InPlaceFactoryT> struct Func
    { typedef function<AncestorType, InPlaceFactoryT const &> BaseCreateFn; }
    Ca sert pas à grand chose si ce n'est économiser un peu de code, et à modifier très vite ton code si la signature change.

    Je laisse les gens qui connaisent mieux les template que moi te confirmer ou infirmer ce que j'ai dis

  3. #3
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    @flob : non ça existe pas, enfin avec la prochaine norme si. Mais c'est pas ce qu'il demandait .

    @OP : non c'est pas possible pour la simple et bonne raison que ça n'aurait aucun sens. Une fonction template est un "set" de fonction et donc de type qui n'ont aucun rapport les uns entres les autres.

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Ha, j'aurai pourquoi bien cru qu'il cherchait à faire un typedef qui dépend d'un paramètre template (son T), j'ai du mal comprendre.

    HS: GCC implémente les template typename ou pas (avec std=c++0x) ? J'ai tenté un template<class T> typedef A<T> B; avec A une classe template mais ca ne marche pas, la syntaxe n'est peut-etre pas la bonne aussi

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par défaut
    Citation Envoyé par Flob90 Voir le message
    Ha, j'aurai pourquoi bien cru qu'il cherchait à faire un typedef qui dépend d'un paramètre template (son T), j'ai du mal comprendre.

    HS: GCC implémente les template typename ou pas (avec std=c++0x) ? J'ai tenté un template<class T> typedef A<T> B; avec A une classe template mais ca ne marche pas, la syntaxe n'est peut-etre pas la bonne aussi
    90, je cherche à faire un pointeur sur une fonction template. c'est forcément possible!

  6. #6
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Citation Envoyé par moi même
    @OP : non c'est pas possible pour la simple et bonne raison que ça n'aurait aucun sens. Une fonction template est un "set" de fonction et donc de type qui n'ont aucun rapport les uns entres les autres.

    Une fonction template ça "n'existe pas" dans le sens où le compilo remplacera les types quand elle sera instanciée.

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Tu peus faire ce que j'ai dit, mais ca ne change rien à ce que dit Goten, tout les types de pointeurs (via des std::function ici), seront différent, donc tu ne pourras pas les échnager simplement à l'execution, ca sera juste un outils de simplification d'écriture.

Discussions similaires

  1. [XSLT] question sur les templates
    Par ploxien dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/10/2006, 12h39
  2. Aide sur les templates de codes de Delphi 2006
    Par vanquish dans le forum Delphi
    Réponses: 1
    Dernier message: 23/06/2006, 16h22
  3. [XSL] Prob. de tri sur un template
    Par Trin dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/11/2005, 11h47

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