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 :

Detecter le type d'un argument d'une fonction


Sujet :

C++

  1. #21
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    D'où le boost::any
    Plus sérieusement, pourquoi la fonction retourne parfois un string ?

  2. #22
    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
    On peut toujours éviter le void*. Par exemple rien qu'en passant ta valeur de retour par référence plutôt qu'en la retournant par copie, tu pourras surcharger ta fonction.

    On peut voir à quoi ressemblent ces fonctions ?

  3. #23
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    Alors, je lis des donnees dans un fichier de type specifique (HDF), et la partie que je lit (un attribut, sorte de metadata associee à des donnees) peut contenir une chaine de caracteres ou bien un tableau de double.

    ce qui m embete avec boost, c est qu apres mon code sera utilise dans matlab, et que boost n es pas integre par default au cpp

  4. #24
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    Citation Envoyé par Laurent Gomila
    On peut toujours éviter le void*. Par exemple rien qu'en passant ta valeur de retour par référence plutôt qu'en la retournant par copie, tu pourras surcharger ta fonction.

    On peut voir à quoi ressemblent ces fonctions ?

    prototype de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void* HDF5_Read_Attr(const string attr_Name, const string file_Name, const string dataset_Name);
    Mais le probleme est qu au moment de l appel de la fonction, je ne sais pas quel type de variable me sera renvoyé par la fonction, donc meme avec une surcharge, ca ne va pas nop?

  5. #25
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    moi j'utiliserai les templates heritant d'une classe principal factorisant le code.
    et specialiser les fonctions pour s'adapter a des traitements speciaux

    a+

  6. #26
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    pour la question du type de retour,
    pourquoi tu ne sais pas le type que ta fonction retourne ?
    que elle retourne void* ne dit pas si toi tu ne sauras son type qu'apres.
    (c'est un peu quand on lit dans un fichier, on appelle readDouble, readInt suivant ce que l'on est censé avoir ....)

    dans ce cas pourquoi tu ne ferais pas deux fonctions readXXX ?

    a+

  7. #27
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    comme je l ai dit au dessus, je lis une partie d un fichier de type specifique, qui stocke des donnees en string ou bien en double...

  8. #28
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu ferais mieux de designer ton code différemment

  9. #29
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    en fait une fonction ne peut explicitement renvoye un double ou un string dependant de l'execution

    la seule chose qui te reste a faire c'est creer une structure avec une union et le type a manipuler.

    voila

  10. #30
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Sauf que ça ne marche pas avec les strings.

  11. #31
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    ce qui m embete avec boost, c est qu apres mon code sera utilise dans matlab, et que boost n es pas integre par default au cpp
    Ça ne devrait te poser aucun problème, il suffit d'inclure des entêtes.

  12. #32
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    Citation Envoyé par Miles
    Sauf que ça ne marche pas avec les strings.
    oui effectivement, alors il ne fait pas d'union dans la structure,
    de toute facon ce n'est pas le poids du double qui changera quelque chose ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/07/2010, 10h34
  2. Réponses: 9
    Dernier message: 10/05/2010, 21h35
  3. Detecter le type d'un navigateur dans une jsp
    Par air75 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 27/05/2009, 12h00
  4. Réponses: 30
    Dernier message: 27/03/2008, 15h02
  5. Réponses: 11
    Dernier message: 18/02/2007, 15h37

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