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 :

[template] arguments et type de retour


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut [template] arguments et type de retour
    Bonjour,

    Je voudrais définir 2 fonctions template, et il y en a une qui n'est pas reconnue: elle compile, mais lorsque je l'utilise elle n'est pas reconnue...

    Celle-ci passe bien :
    template <class T>
    string myFunc(T arg) { ... return s ; }
    En revanche celle-ci pose le problème:
    template <class T>
    T myFunc(sring s) { ... return t ; }
    Est parcequ'il faut obligatoirement dans la signature du template le type générique défini ?
    Car si je met à la place (je sais c'est idiot t2 ne sert pas)
    template <class T>
    T myFunc(sring s, T t2) { ... return t ; }
    là ça passe

    Si quelqu'un peut m'éclairer, merci

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Au moment d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    template <class T>
    T myFunc(string s) { ... return t ; }
    Il faut spécifier le type de T, car le compilateur n'a aucun indice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i = myFunc<int>("toto");
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    aah oui, je vois pourquoi
    merci merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    ha, petite question supplémentaire, quelle est la syntaxe relative aux header ?

    J'ai mis dans le cpp:
    template <class T>
    T myclass::myFunc(sring s)
    {
    ... return t ;
    }
    et voulu mettre dans le header
    template <class T>
    T myFunc(sring s) ;
    mais à l'édition des liens je reçois un undefined reference, comme s'il ne faisiat pas le lien entre la déclaration et la définition .... est-ce normal ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    rq: en mettant tout dans le header c'est bon, mais j'aime pas

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

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

Discussions similaires

  1. Template et fonction amie / type de retour inconnu
    Par Armas dans le forum Débuter
    Réponses: 13
    Dernier message: 24/04/2013, 15h17
  2. Réponses: 4
    Dernier message: 23/07/2011, 08h35
  3. Réponses: 2
    Dernier message: 17/10/2010, 15h11
  4. Réponses: 10
    Dernier message: 13/04/2009, 13h02
  5. type de retour de fonction template
    Par k1000 dans le forum Langage
    Réponses: 5
    Dernier message: 21/04/2008, 11h41

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