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

MFC Discussion :

Template & Visual c++


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par d�faut Template & Visual c++
    Bonjour,

    j'ai un petit souci de compilation en utilisant un template tout simple voici mon bout de code :

    Dans le .h

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class MyClass
    {
     
       template<typename T>
       BOOL isFI(const std::string &Str);
     
    public :
     
       MyClass();   
    }
    Dans le .cpp

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    MyClass::MyClass
    {
       s="2.3"
       isFI<int>(s);        // ne compile pas, erreur : "type 'int' unexpected"
       isFI<float>(s);     // ne compile pas, erreur : "type 'float' unexpected"
    }
     
    template<typename T>
    BOOL MyClass::isFI(const std::string &Str)
    {
    	std::istringstream iss (Str);
    	T tmp;
    	return (iss>>tmp) && (iss.eof());
    }
    Est ce que je dois d�fninir T avec int et float en utilisant un typedef ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    pour les templates cpas des classes qu'il faut lui passer lkui passer ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par d�faut
    tu peux le faire mais ce n'est pas mon but.

  4. #4
    Expert confirm�
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    MyClass::MyClass 
    { 
       s="2.3"
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    MyClass::MyClass() 
    { 
       std::string s="2.3" ;

  5. #5
    Membre �clair�
    Inscrit en
    Mai 2005
    Messages
    348
    D�tails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par d�faut
    Bonjour excuse moi, je voudrai bien t'aider mais...
    je ne comprends pas vraiment ce que tu tentes de faire.

    Dans ton .h tu as une fonction qui renvoit un bool��n et un constructeur.

    Dans ton cpp tu initialise s � 2.3 hors s n'est d�finit nulle part.

    Essuite ta fonction (je sais c'est pas le terme exact) renvoie (ou est sens�e renvoyer) un boul��n que tu ne conserves nulle part....

    de plus la m�thode �tant priv�e, tu n'y acc�derais m�me pas de l'ext�rieur.....

    Vu que toutes les fonctions et variables que tu utilises sont typ�es le template n'a pas lieu d'�tre.


    Donc voil� j'ai pas trop compris. Essaie de dire ce que tu cherches � faire. Tu veux un objet qui une fois instanci� puisse dire si le string pass� en param�tre est un entier ou un floatant? (la je t'assure que je fais carburer mon imagination parce que �a correspond pas � ton code ).
    Enfin explique.

  6. #6
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par d�faut
    J'ai voulu simplifier au maximum mais peut etre trop !

    Oui, pour simplifier je ne conserve pas le r�sultat de la m�thode.
    Pareil, je n'ai pas d�clarer mon string mais en r�alit� c'est fait.
    Non, je n'acc�de pas � la m�thode de l'ext�rieur.
    Oui effectivement, je veux regarder si mon string est un float ou un int.

    Je sais que je pourrais cr�er une fonction externe � ma classe et dans ce cas ca marche...

    D'autres solutions peut etre ?

  7. #7
    Membre �clair�
    Inscrit en
    Mai 2005
    Messages
    348
    D�tails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par d�faut
    en fait si tu veux savoir si ton string est un float ou un int tu n'as pas besoin de template. Les templates justement c'est pour �tre utiliser avec n'importe quoi, n'importe quel type de donn�e.
    Comme faire une fonction de trie capable de trier n'importe quel type d'objet, l� tu mettrais un template. Mais si tu sais d�j� � l'avance que ce sont des string que tu testes c'est vraiment pas n�cessaire.
    D'ailleurs un string en int ou float, je me demande si �a n'existe pas....

    Me semble que tu peux, au minimum, tester si chaque caract�re du string est compris dans les chiffres ou est un point ou une virgule.

  8. #8
    Expert confirm�
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par d�faut
    Avec les deux petites corrections que j'ai exp�di�es plus haut, ton code compile chez moi. A l'ex�cution, en instantiant un objet MyClass, isFI est effectivement appel�e deux fois et met dans l'objet local temp la premi�re fois 2 et la seconde 2.3

  9. #9
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par d�faut
    Ah oui ? bon je vais r�essayer en recr�ant un projet simple...
    Merci en tous cas.

  10. #10
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    La vraie question ce serait plut�t : compiles-tu avec VC6 / VC7.0, ou bien une version plus r�cente ( 7.1 ou 8 ) ?

    Dans le premier cas il ne faudra pas s'�tonner, la gestion des fonctions membres templates est plus que d�sastreuse.

  11. #11
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par d�faut
    VC6 !!!

    Je vais laisser tomber les templates dans les fonctions membres !

    Merci � tous

  12. #12
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Tu as tout de m�me un espoir : parfois cela marche lorsque tu d�clares et impl�mentes la fonction en une seule fois (� l'int�rieur de la d�finition de la classe, donc). Tu peux toujours essayer.

  13. #13
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    23
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Par d�faut
    Sympa du tuyau , j'essayerais lundi.

  14. #14
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par d�faut
    Salut

    Citation Envoy� par Loulou24
    La vraie question ce serait plut�t : compiles-tu avec VC6 / VC7.0, ou bien une version plus r�cente ( 7.1 ou 8 ) ?

    Dans le premier cas il ne faudra pas s'�tonner, la gestion des fonctions membres templates est plus que d�sastreuse.
    Juste en passant:
    Que veut-tu dire? je ne dis pas que ce que tu dis est faux (j'en suis incapable) mais etant aussi sous VC6 j'aimerais en savoir un peu plus.
    J'ai deja compiler des classe template sans probleme apparent.
    Dans le premier cas il ne faudra pas s'�tonner, la gestion des fonctions membres templates est plus que d�sastreuse.
    Au niveau creation de l'executable?
    Ou bien ca ne compile pas?

  15. #15
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    VC6 �choue souvent lorsqu'il s'agit de compiler des templates. Attention pour les cas "simples" il n'y a pas de probl�me, mais pour ce qui est des fonctions membres templates l� �a pose d�j� plus de probl�mes. Je n'ai plus VC6 depuis quelques temps donc je ne peux pas illustrer �a avec des exemples, mais je t'invite � essayer toutes sortes de choses pour voir les limites du compilo.

    Au passage, ces lacunes sur les templates expliquent en partie les lacunes au niveau de la STL.

  16. #16
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par d�faut
    Oki!
    J'en suis encore au cas simple alors

Discussions similaires

  1. Choix Template REST Visual Studio
    Par barnet dans le forum Windows Communication Foundation
    R�ponses: 3
    Dernier message: 26/07/2011, 20h20
  2. webpart template et visual studio 2008
    Par bakabdel dans le forum SharePoint
    R�ponses: 9
    Dernier message: 04/01/2010, 17h23
  3. M�thode pour installer templates sur visual
    Par s-ehtp dans le forum C#
    R�ponses: 3
    Dernier message: 09/07/2009, 19h14
  4. R�ponses: 1
    Dernier message: 22/08/2007, 15h48
  5. D�rivation de classe template en visual c++ 2003
    Par fabienpot dans le forum MFC
    R�ponses: 7
    Dernier message: 23/11/2005, 16h31

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