Merci beaucoup de ton accueil et de ton aide.
Si ça n'est pas possible, je ferai sans... mais quand même, la question me tracasse.
Mon exemple ne compile pas avec C++ Builder 6, mais je viens d'essayer avec une vieille version de DevC++ qui traînait, et il semblerait que ça fonctionne avec la syntaxe suivante (<> après le Add) :
1 2
|
friend const Conteneur<Objet> Add<> (const Conteneur<Objet> &Data1, const Conteneur<Objet> &Data2); |
Je me demande ce que prévoit la norme. Est ce que c++ builder n'est pas au point, ou est ce DevC++ qui a ajouté une facilité ?
Pour le "turn arround" proposé, c'est bien comme ça que mon "vrai" code fonctionne (le code posté est épuré au max pour montrer uniquement ce qui pose problème), mais je suis surpris (et un peu déçu j'avoue...) de ne pas pouvoir autoriser la fonction Add à accéder aux données protégées du conteneur. Il me semble que dans certain cas, ça peut être nécessaire. (on pourrai aussi déclarer Conteneur& Add(Conteneur<Objet> const&, Conteneur<Objet> const&) en fonction membre, mais ça risque d'alourdir le code par la suite).
Partager