Problème avec les Vectors ( return ((vector<_Key>::iterator)NULL;) - C++ - Programmation
Marsh Posté le 21-01-2006 à 18:11:28
un iterator c'est pas un pointeur. si tu veux indiquer rien, tu retournes v.end()
Marsh Posté le 22-01-2006 à 01:51:02
Tu te ramollies , t'as même pas pisser dans les tripes du PO parce qu'il avait utilisé un nom réservé
( ^_[_A-Z] au moins est réservé à l'implémentation )
le type vector<>::iterator est défini par l'implémentation. VS6, malgré que ce soit une bouze finie, a tout à fait le droit de faire en sorte que l'iterator soit en réalité un pointeur.
Sinon, je ne sais pas comment tu vas utiliser ton iterateur ainsi que ton conteneur sous jaçant, mais méfies toi des conditions d'invalidation de l'iterateur.
Marsh Posté le 22-01-2006 à 11:17:16
++fab a écrit : Tu te ramollies , t'as même pas pisser dans les tripes du PO parce qu'il avait utilisé un nom réservé |
je laisse tomber ça et les include guards, y a vraiment des gens trop stupides qui utiliseront toujours STACK_H, qui foutront des _ dans tous les sens et préfixeront tout en C ou T parce que MS et Borland le font ...
Marsh Posté le 22-01-2006 à 12:14:18
Taz a écrit : je laisse tomber ça et les include guards, y a vraiment des gens trop stupides qui utiliseront toujours STACK_H, qui foutront des _ dans tous les sens et préfixeront tout en C ou T parce que MS et Borland le font ... |
pour les IG, c'est stupide d'en faire des courts et commun, mais j'en ai franchement marre d'avoir à gérer un nom unique. Faut dire que j'ai toujours pas pris la peine de m'écrire une fonction e-lisp pour me gérer ça dans emacs
Bref, les IG, je trouve ça de plus en plus préhistoriques ... Vivement les namespace >> et al.
Marsh Posté le 22-01-2006 à 17:42:55
e-lisp, IG, STACK_H C quoi tout ça ???
Et de plus quels est le problème avec mon nom de structure ???
_Sprite_Data
Perso je met toujour un _ devant une stucture...
Marsh Posté le 22-01-2006 à 18:09:01
les noms commencant par '_' suivi d'une majuscule ou commencant par '__' sont réservés à l'implémenation, tu peux mettre un '_' devant mais suivie d'une minuscule
Marsh Posté le 22-01-2006 à 18:09:28
Lereveur a écrit : e-lisp, IG, STACK_H C quoi tout ça ??? |
e-lisp : un truc d'emacsien, IG : include guards, STACK_H est l'exemple d'un include guard trop souvent employé et pas assez unique.
Lereveur a écrit : Et de plus quels est le problème avec mon nom de structure ??? |
( ^_[_A-Z] au moins est réservé à l'implémentation )
Marsh Posté le 22-01-2006 à 18:18:00
skelter a écrit : tu peux mettre un '_' devant mais suivie d'une minuscule |
Si le nom n'est pas dans la scope globale.
Je ne comprend pas l'intérêt qu'il y a à rendre un nom dégueulasse en préfixant par '_'. Si on a réservé à l'implémentation ces noms, c'est qu'il a été jugé qu'ils étaient les plus laid, et que les utilisateurs n'en auraient pas crucialement besoin.
Marsh Posté le 22-01-2006 à 18:20:28
skelter a écrit : les noms commencant par '_' suivi d'une majuscule ou |
Marsh Posté le 22-01-2006 à 18:29:23
je comprends pas, je traduis ce que tu ecris (^_[_A-Z]), ta qu'a le dire si en réalité c'est (^_.*|.*__.*)
Marsh Posté le 22-01-2006 à 18:38:22
j'ai dit "^_[_A-Z] au moins" pour ne pas avoir a me prendre la tete avec une regexp compliquée
Marsh Posté le 23-01-2006 à 08:38:44
++fab a écrit : j'ai dit "^_[_A-Z] au moins" pour ne pas avoir a me prendre la tete avec une regexp compliquée |
Et pour trouver les recommandations détaillées sur ce point, il faut aller où ?
Marsh Posté le 23-01-2006 à 19:53:54
slash33 a écrit : Et pour trouver les recommandations détaillées sur ce point, il faut aller où ? |
Dans la norme, rubrique 17.4.3.1 et suivantes.
Sinon, il y a un gotw qui en parle, je ne sais plus lequel.
Marsh Posté le 21-01-2006 à 16:21:24
(Re) bonjour,
Étant en période de découverte des vectors jai encore quelques problèmes :
Une de mes fonction retourne un iterator :
Mais voila le problème que je ne sais pas résoudre :
Je voudrais quen cas derreur la fonction me retourne un NULL que je pourrais ensuite comparer comme un pointeur.
Du type :
Mais VS8 me retourne une erreur (alors que VS6 ne posais pas de problème) :
Je ne sais vraiment pas comment faire donc si quelquun sy connais un peu en vectors , j apprecierais beaucoup son aide.
Merci davance.