Bonjour,
Je suis entrain de développer une application qui a pour but de récupérer, à partir d'un ou plusieurs fichier(s) XML, les applications installées sur plusieurs machines Windows Server (un document XML par machine en fait), ces fichiers sont générés pas un produit qui scanne plusieurs choses où il serait succeptible de trouver des informations installées (dossier progam files, base de registre, etc.). Je ne dois ni avoir deux fois la même applications, ni deux fois la même machine.
Bien que j'ai lu les documentations de SGI et les FAQ et autres tutoriels, je n'arrive pas a avoir les idées claires concernant un petit point de détail, mais qui dans mon contexte a son importance.
J'ai fais le choix de déclarer une classe Registre, décrite ainsi:
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
class Registre
{
private:
  Registre();
  Registre(const Registre &);
  virtual ~Registre();
  typedef std::pair<std::vector<Machine>::iterator, std::vector<Application>::iterator> paire_;
  std::vector<paire_> liens_;
  std::vector<Machine> machines_;
  std::vector<Application> applications_;
 
public:
  inline static Registre& getInstance() {
    static Registre instance;
    return instance;
  };
  void addMachine(const Machine& machine);
  void addApplicationTo(const Application& application, const Machine& machine);
};
Ma question portera sur cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
  typedef std::pair<std::vector<Machine>::iterator, std::vector<Application>::iterator> paire_;
Lorsque je déclare une paire_ de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
paire_ lien(find(machines_.begin(), machines_.end(), machine), find(applications_.begin(), applications_.end(), application));
je devrais normalement créer une paire avec:
  • Pour le membre "first": Un iterateur constant sur un vecteur de Machine.
  • Pour le membre 'second': Un iterateur constant sur un vecteur d'Application.


Si j'écris un code comme celui ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
  applications_[0].setVersion("3.0");
tous les itérateurs pointant vers cette application auront une version "3.0"?
Je vous remercie par avance de vos réponse,
Floréal

PS: Je n'ai jusqu'alors pas rencontré de problème de compilation.