Bonsoir,
J'ai des map du type
std::map<objet*,objet*,foncteur>
où le foncteur varie (le type des objets aussi, mais ça ne change rien à la
définition de la map).
Je cherche à parcourir (uniquement parcourir, pas modifier) une map de ce
type sans connaître le foncteur qui a été utilisé pour le tri, ie quelque
chose du type :
La même erreur dans les deux cas : => Impossible de trouver une correspondance pour 'Map::map(bool (*)(int,int))' C'est un bug de mon compilateur BCB 2007, il faut croire. Marc
La même erreur dans les deux cas :
=> Impossible de trouver une correspondance pour 'Map::map(bool
(*)(int,int))'
C'est un bug de mon compilateur BCB 2007, il faut croire.
Marc
La même erreur dans les deux cas : => Impossible de trouver une correspondance pour 'Map::map(bool (*)(int,int))' C'est un bug de mon compilateur BCB 2007, il faut croire. Marc
Michael Doubez
On 11 sep, 15:20, "MGN" wrote:
La même erreur dans les deux cas : => Impossible de trouver une correspondance pour 'Map::map(bool (*)(int,int))' C'est un bug de mon compilateur BCB 2007, il faut croire. Marc
C'est plus qu'un bug si c'est bien le cas. Le §23.3.1.1 du standard précise. explicit map ( const Compare& comp = Compare(), const Allocator& = Allocator() );
C'est le constructeur utilisé pour la construction par défaut. Dur de le manquer.
-- Michael
On 11 sep, 15:20, "MGN" <mgueg...@metrica.fr> wrote:
La même erreur dans les deux cas :
=> Impossible de trouver une correspondance pour 'Map::map(bool
(*)(int,int))'
C'est un bug de mon compilateur BCB 2007, il faut croire.
Marc
C'est plus qu'un bug si c'est bien le cas.
Le §23.3.1.1 du standard précise.
explicit map ( const Compare& comp = Compare(),
const Allocator& = Allocator() );
C'est le constructeur utilisé pour la construction par défaut. Dur de
le manquer.
La même erreur dans les deux cas : => Impossible de trouver une correspondance pour 'Map::map(bool (*)(int,int))' C'est un bug de mon compilateur BCB 2007, il faut croire. Marc
C'est plus qu'un bug si c'est bien le cas. Le §23.3.1.1 du standard précise. explicit map ( const Compare& comp = Compare(), const Allocator& = Allocator() );
C'est le constructeur utilisé pour la construction par défaut. Dur de le manquer.
-- Michael
James Kanze
On Sep 11, 4:31 pm, Michael Doubez wrote:
On 11 sep, 15:20, "MGN" wrote:
> La même erreur dans les deux cas : > => Impossible de trouver une correspondance pour 'Map::map(bool > (*)(int,int))' > C'est un bug de mon compilateur BCB 2007, il faut croire.
C'est plus qu'un bug si c'est bien le cas. Le §23.3.1.1 du standard précise. explicit map ( const Compare& comp = Compare(), const Allocator& = Allocator() );
C'est le constructeur utilisé pour la construction par défaut. Dur de le manquer.
Oui, mais une erreur dans le compilateur pourrait bien faire que le compilateur ne le trouve pas pendant la résolution des surcharges, même s'il existe. (Si je me rappelle correctement, MGN avait dit que ça marchait quand la fonction en question n'était pas un template, ou quand le pointeur à la fonction était une variable locale, et non le nom de la fonction directement, ce qui indiquerait que le constructeur existe.)
À mon avis, la seule chose qu'il lui reste à faire, c'est de changer le compilateur, s'il peut. S'il n'y a pas d'autres contraints, VC++ sous Windows, et g++ sous Unix, sont gratuits, et tous les deux sont de très bons compilateurs pour ces plateformes.
-- James Kanze
On Sep 11, 4:31 pm, Michael Doubez <michael.dou...@free.fr> wrote:
On 11 sep, 15:20, "MGN" <mgueg...@metrica.fr> wrote:
> La même erreur dans les deux cas :
> => Impossible de trouver une correspondance pour 'Map::map(bool
> (*)(int,int))'
> C'est un bug de mon compilateur BCB 2007, il faut croire.
C'est plus qu'un bug si c'est bien le cas.
Le §23.3.1.1 du standard précise.
explicit map ( const Compare& comp = Compare(),
const Allocator& = Allocator() );
C'est le constructeur utilisé pour la construction par défaut.
Dur de le manquer.
Oui, mais une erreur dans le compilateur pourrait bien faire que
le compilateur ne le trouve pas pendant la résolution des
surcharges, même s'il existe. (Si je me rappelle correctement,
MGN avait dit que ça marchait quand la fonction en question
n'était pas un template, ou quand le pointeur à la fonction
était une variable locale, et non le nom de la fonction
directement, ce qui indiquerait que le constructeur existe.)
À mon avis, la seule chose qu'il lui reste à faire, c'est de
changer le compilateur, s'il peut. S'il n'y a pas d'autres
contraints, VC++ sous Windows, et g++ sous Unix, sont gratuits,
et tous les deux sont de très bons compilateurs pour ces
plateformes.
> La même erreur dans les deux cas : > => Impossible de trouver une correspondance pour 'Map::map(bool > (*)(int,int))' > C'est un bug de mon compilateur BCB 2007, il faut croire.
C'est plus qu'un bug si c'est bien le cas. Le §23.3.1.1 du standard précise. explicit map ( const Compare& comp = Compare(), const Allocator& = Allocator() );
C'est le constructeur utilisé pour la construction par défaut. Dur de le manquer.
Oui, mais une erreur dans le compilateur pourrait bien faire que le compilateur ne le trouve pas pendant la résolution des surcharges, même s'il existe. (Si je me rappelle correctement, MGN avait dit que ça marchait quand la fonction en question n'était pas un template, ou quand le pointeur à la fonction était une variable locale, et non le nom de la fonction directement, ce qui indiquerait que le constructeur existe.)
À mon avis, la seule chose qu'il lui reste à faire, c'est de changer le compilateur, s'il peut. S'il n'y a pas d'autres contraints, VC++ sous Windows, et g++ sous Unix, sont gratuits, et tous les deux sont de très bons compilateurs pour ces plateformes.