Bonjour,
désolé de vous dérangez avec un problème que je maitrise assez mal.
Je travaille sur un modèle de produit financier et pour cela j'ai eut besoin d'importer des classes de structure de données depuis le CD d'un bouquin assez sérieux.
Malheureusement j'ai des erreurs de compilation et certains problèmes sont un peu trop techniques pour moi, j'ai beau cherché sur Internet et je ne trouve pas de solution.
L'erreur en question se trouve dans un fichier nommé Set.hpp :
Code :
- // Standard set operations from High School
- friend Set<V> Intersection(const Set<V>& s1, const Set<V>& s2);
- Set<V> operator ^ (const Set<V>& s2); // Intersection
- friend Set<V> Union(const Set<V>& s1, const Set<V>& s2);
- Set<V> operator + (const Set<V>& s2); // Union
- friend Set<V> Difference(const Set<V>& s1, const Set<V>& s2);
- Set<V> operator - (const Set<V>& s2); // Difference
- friend Set<V> SymmetricDifference(const Set<V>& s1, const Set<V>& s2);
- Set<V> operator % (const Set<V>& s2); // Symmetric Difference
|
Comme vous le voyez l'auteur définit certains opérateurs mais ce morceau de code produit des erreurs du type :
[Warning] friend declaration `Set<V> Intersection(const Set<V>&, const Set<V>& )' declares a non-template function
[Warning] (if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning
Premièrement, je ne comprend pas ce message et je ne vois pas où je dois ajouter le <> en question (j'ai testé plusieurs possibilité mais ça ne fonctionne pas).
Deuxièmement, j'ai une autre erreur dans le même fichier et dans le .cpp associé, je me demande si c'est lié à ce problème ou non :
Code :
- Set<pair<V, V2> > result;
- set<V>::const_iterator iOuter;
- set<V2>::const_iterator iInner;
|
Ces définitions d'itérateurs dans le .hpp produisent le message d'erreur suivant:
In member function `Set<std::pair<V, V2> > Set<V>::CartesianProduct(const Set<V2>& )':
expected `;' before "iOuter"
J'ai les meme message d'erreur à chaque déclaration d'itérateur dans le fichier Set.cpp.
Merci beaucoup pour votre aide.
Bonne journée,
Jean.