D'où le boost::any
Plus sérieusement, pourquoi la fonction retourne parfois un string ?
D'où le boost::any
Plus sérieusement, pourquoi la fonction retourne parfois un string ?
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 ?
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
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
Envoyé par Laurent Gomila
prototype de la fonction:
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?
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);
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+
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+
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...
Tu ferais mieux de designer ton code différemment![]()
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
Sauf que ça ne marche pas avec les strings.
Ça ne devrait te poser aucun problème, il suffit d'inclure des entêtes.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
oui effectivement, alors il ne fait pas d'union dans la structure,Envoyé par Miles
de toute facon ce n'est pas le poids du double qui changera quelque chose ...
Partager