Bonsoir à tous, ma compréhension des templates oscille entre 1% et 2% de l'affaire selon les jours :-)
Il y a quelque chose que je cherche désespérément à réaliser, sans succès. J'ai eu beau chercher partout, je ne pige pas.

Donc, on imagine un pseudo code comme ça :

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
26
27
28
29
 
class Media {
 
  enum names { velocity, volume, tagada }
 
  void setProperty(int prop_name, float value);
  void setProperty(int prop_name, int value);
  void setProperty(int prop_name, vector3 value);
  void setProperty(int prop_name, vector2 value);
  void setProperty(int prop_name, trucmuche value);
}
 
class Control {
  vector<Media> medias;
  void registerCallback(adresse_fonction) {
    medias.push_back(adresse_fonction);
  }
  void update() {
    // parcourir les éléments du vector medias et appeler la fonction avec un valeur arbitraire (valeur du paramètre value)
  }
}
 
main() {
  Control c;
  Media m;
  c.registerCallback(&Media.setProperty(Media::velocity, float));
  c.registerCallback(&Media.setProperty(Media::volume, int));
  c.update();
}
Je n'arrive pas à trouver une solution pour passer la fonction de Media à Control, je ne sais pas la stocker et je ne sais pas l'appeler. Très concrètement, je ne sais pas le dire en C++
J'ai regardé <functional>, donc bind, function etc etc mais ça me dépasse

On dit "Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours."

Franchement, donnez moi un poisson parce que je risque de passer quelques années à essayer de comprendre comment fonctionne la cane à pêche