Bon, on va donc reprendre... Via [], tu peux insérer ou remplacer (suivant ce qui existe) une valeur. Bref, tu as un ajout inconditionnel, ou une lecture.
Pour le reste, je viens de vérifier... Faut dire aussi que j'utilise tellement peu find/insert - tellement c'est barbare - que ça doit bien faire deux ans que je n'ai pas écrit une seule ligne avec ces méthodes.
Via insert, tu ne peux pas écraser la valeur, et tu dois adopter un comportement spécial si la valeur existe déjà (d'où le find) afin de la remplacer.
Donc, pour écraser une valeur : sans find avant le insert, et sans utiliser [], tu fais comment ? Tu la vires inconditionnellement avant de l'insérer ? Dans tous les cas, c'est une usine à gaz qui demande d'éplucher la doc des deux fonctions pour être certain de ce qu'elles font. Via [], tu t'en sers comme d'un tableau, le sens est évident en fonction de la position de l'élément indexé (L ou R-value). Le code est également plus concis, plus lisible, et tu te passe des itérateurs.
Veni, vidi, reparti... C'est loin de m'avoir convaincu de lâcher mon RAD.
C++/CLI est là pour ça. Par contre, la barrière est plus lourde que tu ne le crois : tu ne peux attacher qu'un seul débugger à l'exécutable, soit en mode managé, soit en mode natif. Quand tu arrives au wrapping managé/natif (importation DLL ou appel vers le managé), ton debugger ne permet plus de tracer dans le source, hélas : il voit la fonction de "l'autre monde" comme quelque chose d'atomique, et ton debugger ne passe pas automatiquement du mode managé au mode natif et réciproquement.
Très pénible quand on fait du debug de wrappers... OK, c'est un cas particulier, mais il se trouve que je suis passé en plein dedans pour avoir développé, justement, des interfaces C#/C++ générales (et générées).
Partager