Bonjour,
Je ne trouve pas de solution à un problème qui n'en a peut-être pas... Un exemple vaudra mieux qu'une longue explication :
Et si ce type de manip est possible (?), je sèche sur l'argument à l'appel de cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 struct MaStructure { static double champ_1; static double champ_2; static double champ_3; }; class MaClasse { map<int, MaStructure> conteneur; public : vector<double> MaFonction(double MaStructure:: *arg) } vector<double> MaClasse::MaFonction(double MaStructure:: *arg) { vector<double> monVector; for (map<int, MaStructure>::iterator it = conteneur.begin(); it != conteneur.end(); ++it) monVector.push_back(it.value().*arg); return monVector; }
Si je ne trouve pas de solution, il faudra que je décline MaFonction autant de fois qu'il y a de membres à MaStructure, en remplaçant chaque fois it.value().*arg par it.value().champ_1, it.value().champ_2, etc..., ce qui ne me semble pas une bonne pratique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MaClasse *classe = new Classe(); classe->MaFonction(????); // rien ne fonctionne
J'avoue que je n'ai rien trouvé dans les forums anglo-saxons qui parle de ça, ni de près, ni de loin...
Bonne fin de journée à tous
Partager