pointer_to_unary_function, random_shuffle & gcc 3.3 - C++ - Programmation
Marsh Posté le 19-01-2005 à 11:35:23
Le 3ème argument de random_shuffle (comme beaucoup d'argument d'algos STL) est non-const. Tu ne peux donc pas lui passer un référence vers un objet temporaire à moins de gruger.
Je te conseille donc d'augmenter ta productivité en écrivant plus de lignes de code:
Code :
|
Marsh Posté le 19-01-2005 à 11:53:54
Arf... c'était effectivement tout simple... je vais aller dormir un peu moi
Merci,
Tyrion qui devrait consulter les protos des fonctions de temps en temps
Marsh Posté le 22-01-2005 à 09:53:38
Lam's a écrit : Le 3ème argument de random_shuffle (comme beaucoup d'argument d'algos STL) est non-const. Tu ne peux donc pas lui passer un référence vers un objet temporaire à moins de gruger.
|
Et pourquoi on ne pourrait pas ? Je vois pas ce que ca peut changer qu'il soit const ou pas. Il y a surement un truc qui m'a echappé.
Marsh Posté le 24-01-2005 à 23:45:16
Oualb a écrit : up |
ça revient à ça :
Code :
|
Marsh Posté le 25-01-2005 à 20:52:15
si il n'existe plus, alors certes on ne peut pas le modifier, mais on ne peut pas le lire non plus, donc je vois pas ce que change le const
Marsh Posté le 27-01-2005 à 00:10:45
Je me rique à suggérer que le problème vient de l'ordre de la construction de l'objet std::pointer_to_unary_function<int, int>. Lors de l'appel de la fonction std::random_shuffle, il n'est pas dit que la construction a été complétée (sur la pile), du fait que l'ordre est dépendant de l'implémentation.
Marsh Posté le 31-01-2005 à 19:25:44
peut etre mais je pense que c'est pas le probleme ici puisqu'apparemment ca compile avec un const et ca ne compile pas avec un non const. ou alors l'ordre dépend de la constness du truc mais ca m'etonnerait
de plus l'exemple de ++fab trois posts plus haut ne fait pas d'appel de fonction, il ne fait qu'initialiser une référence.
Marsh Posté le 19-01-2005 à 11:26:58
Salut à tous,
j'ai un problème avec pointer_to_unary_function :
Avec VC7, pas de problème mais avec gcc 3.3, j'ai une erreur à la compilation :
j'avoue ne pas comprendre, pourtant ça doit être gros comme une maison mais avec le nez dans le guidon, pas facile