compatibilité VC60 et VC.Net c++ library (MFC / ATL)
57 réponses
Vincent Burel
hello
Avec VC.NET , il semble que Microsoft ait modifié pas mal de libraries,
notamment C++ (MFC 70 et ATL) et ait ajouté quelques raffinement au langage
(keyword super / __super par exemple)... qui posent divers problemes de
portage / partage de projet VC.NET - VC 6.0.
Sans compter le fait que VC-Net est conçu pour etre multiplatforme (IA32
IA64 etc...), est-il quand même possible d'envisager une compatibilité
descendante VC 60 sur certains composants : Par exemple d'utiliser MFC 7.0
avec VC 6.0 ?
Vincent Burel
PS : Bonne année.
PS : oui, 2006 sera studieuse
Les organismes de normalisation ne sont pas la pour gagner de l'argent. Il n'y a pas de royalties sur les normes. Le format gif n'a rien a voir avec l'ISO.
C'est bien ce que je dis : une norme n'est pas forcément pondue par un organisme de normalisation. Et une norme pondue par un tel organisme n'est pas forcément meilleure que celle créée par une boîte qui veut gagner de l'argent avec.
J'ai un pote qui bosse à l'ETSI, organisme créé pour pondre de la norme dans les télécoms. Que de conflits d'intérêts entre les membres...
Et a contrario, IBM a passé sa vie à pondre des normes privées qui sont souvent devenues universelles.
Avance des arguments, parce que la c'est juste une reflexion de comptoir.
Tu peux parler !
Press F1. En haut à gauche sur le clavier normalisé.
Et tu vas dire ca au chef de projet ? Mouarf.
Ouais, je peux dire - les yeux dans les yeux et en me grattant le nez - au chef de projet que les commentaires sur l'API et les subtilités du compilo ne sont pas de mon ressort et n'ont guère à être intégrés au code source. Parfaitement.
Si tu commentes chaque mot de ton code, il te reste plus qu'à commenter aussi tes commentaires.
Je dirais, 90% d'entre eux. Mais va sur le forum leur demander.
Mort de rire !
Si tu veux un exemple, regarde le CV de James Kanze, un des intervenant les plus reguliers du forum (40 ans de programmtion en industrie) : http://minilien.com/?9DRbzZWfMN
Ouais, James est quasiment LE SEUL exemple. Et ça fait un bail qu'il ne programme plus dans l'industrie, pour ce que j'en sais.
PS: Il fait aussi partie du comite ISO qui decide de la norme c++.
C'est te dire s'il participe au quotidien à des projets concrets.
Tu te rends compte de ce que tu écris ?
Et toi ? Les fonctions windows ne sont pas normalisees, tu peux consulter l'ISO, l'afnor, l'ansi, le bsi, etc. Tu ne trouveras pas.
Mais moi, par contre, je dis pas qu'une fonction doit forcément passer sous les fourches caudines de l'ISO pour exister et mettre être connue de tout le monde.
Ou alors tu considères que l'API Windows est quantité négligeable. T'es bien sûr d'être sur le bon forum ?
Finalement, la norme, c'est ce qui marche. Peu importe qui la crée.
C'est l'inverse : ca marche parce que c'est une norme.
Là, je reconnais que c'est toi qui as raison : il est bien évident que la poule arrive avant l'oeuf.
Pour lesquelles il ne sera jamais compilé. Ca lui fait une belle jambe.
Tu sais de quoi tu parles ? Pas besoin de le recompiler.
Pour lesquelles il ne sera jamais traduit ni vendu. Va mieux comme ça ?
John Deuf :
Les organismes de normalisation ne sont pas la pour gagner de l'argent.
Il n'y a pas de royalties sur les normes.
Le format gif n'a rien a voir avec l'ISO.
C'est bien ce que je dis : une norme n'est pas forcément pondue par un
organisme de normalisation. Et une norme pondue par un tel organisme
n'est pas forcément meilleure que celle créée par une boîte qui veut
gagner de l'argent avec.
J'ai un pote qui bosse à l'ETSI, organisme créé pour pondre de la norme
dans les télécoms. Que de conflits d'intérêts entre les membres...
Et a contrario, IBM a passé sa vie à pondre des normes privées qui sont
souvent devenues universelles.
Avance des arguments, parce que la c'est juste une reflexion de
comptoir.
Tu peux parler !
Press F1. En haut à gauche sur le clavier normalisé.
Et tu vas dire ca au chef de projet ? Mouarf.
Ouais, je peux dire - les yeux dans les yeux et en me grattant le nez -
au chef de projet que les commentaires sur l'API et les subtilités du
compilo ne sont pas de mon ressort et n'ont guère à être intégrés au
code source. Parfaitement.
Si tu commentes chaque mot de ton code, il te reste plus qu'à commenter
aussi tes commentaires.
Je dirais, 90% d'entre eux. Mais va sur le forum leur demander.
Mort de rire !
Si tu veux un exemple, regarde le CV de James Kanze, un des intervenant
les plus reguliers du forum (40 ans de programmtion en industrie) :
http://minilien.com/?9DRbzZWfMN
Ouais, James est quasiment LE SEUL exemple. Et ça fait un bail qu'il ne
programme plus dans l'industrie, pour ce que j'en sais.
PS: Il fait aussi partie du comite ISO qui decide de la norme c++.
C'est te dire s'il participe au quotidien à des projets concrets.
Tu te rends compte de ce que tu écris ?
Et toi ?
Les fonctions windows ne sont pas normalisees, tu peux consulter l'ISO,
l'afnor, l'ansi, le bsi, etc. Tu ne trouveras pas.
Mais moi, par contre, je dis pas qu'une fonction doit forcément passer
sous les fourches caudines de l'ISO pour exister et mettre être connue
de tout le monde.
Ou alors tu considères que l'API Windows est quantité négligeable. T'es
bien sûr d'être sur le bon forum ?
Finalement, la norme, c'est ce qui marche. Peu importe qui la crée.
C'est l'inverse : ca marche parce que c'est une norme.
Là, je reconnais que c'est toi qui as raison : il est bien évident que
la poule arrive avant l'oeuf.
Pour lesquelles il ne sera jamais compilé. Ca lui fait une belle
jambe.
Tu sais de quoi tu parles ?
Pas besoin de le recompiler.
Pour lesquelles il ne sera jamais traduit ni vendu. Va mieux comme ça ?
Les organismes de normalisation ne sont pas la pour gagner de l'argent. Il n'y a pas de royalties sur les normes. Le format gif n'a rien a voir avec l'ISO.
C'est bien ce que je dis : une norme n'est pas forcément pondue par un organisme de normalisation. Et une norme pondue par un tel organisme n'est pas forcément meilleure que celle créée par une boîte qui veut gagner de l'argent avec.
J'ai un pote qui bosse à l'ETSI, organisme créé pour pondre de la norme dans les télécoms. Que de conflits d'intérêts entre les membres...
Et a contrario, IBM a passé sa vie à pondre des normes privées qui sont souvent devenues universelles.
Avance des arguments, parce que la c'est juste une reflexion de comptoir.
Tu peux parler !
Press F1. En haut à gauche sur le clavier normalisé.
Et tu vas dire ca au chef de projet ? Mouarf.
Ouais, je peux dire - les yeux dans les yeux et en me grattant le nez - au chef de projet que les commentaires sur l'API et les subtilités du compilo ne sont pas de mon ressort et n'ont guère à être intégrés au code source. Parfaitement.
Si tu commentes chaque mot de ton code, il te reste plus qu'à commenter aussi tes commentaires.
Je dirais, 90% d'entre eux. Mais va sur le forum leur demander.
Mort de rire !
Si tu veux un exemple, regarde le CV de James Kanze, un des intervenant les plus reguliers du forum (40 ans de programmtion en industrie) : http://minilien.com/?9DRbzZWfMN
Ouais, James est quasiment LE SEUL exemple. Et ça fait un bail qu'il ne programme plus dans l'industrie, pour ce que j'en sais.
PS: Il fait aussi partie du comite ISO qui decide de la norme c++.
C'est te dire s'il participe au quotidien à des projets concrets.
Tu te rends compte de ce que tu écris ?
Et toi ? Les fonctions windows ne sont pas normalisees, tu peux consulter l'ISO, l'afnor, l'ansi, le bsi, etc. Tu ne trouveras pas.
Mais moi, par contre, je dis pas qu'une fonction doit forcément passer sous les fourches caudines de l'ISO pour exister et mettre être connue de tout le monde.
Ou alors tu considères que l'API Windows est quantité négligeable. T'es bien sûr d'être sur le bon forum ?
Finalement, la norme, c'est ce qui marche. Peu importe qui la crée.
C'est l'inverse : ca marche parce que c'est une norme.
Là, je reconnais que c'est toi qui as raison : il est bien évident que la poule arrive avant l'oeuf.
Pour lesquelles il ne sera jamais compilé. Ca lui fait une belle jambe.
Tu sais de quoi tu parles ? Pas besoin de le recompiler.
Pour lesquelles il ne sera jamais traduit ni vendu. Va mieux comme ça ?
Bertrand Lenoir-Welter
Vincent Burel :
le programmeur expérimenté écrira plutot : if (mon_pointeur != NULL) delete(mon_pointeur); mon_pointeur=NULL;
Putain, c'est la première fois que Vincent me traite de programmeur expérimenté !
J'en suis tout retourné...
Vite, un café !
Vincent Burel :
le programmeur expérimenté écrira plutot :
if (mon_pointeur != NULL) delete(mon_pointeur);
mon_pointeur=NULL;
Putain, c'est la première fois que Vincent me traite de programmeur
expérimenté !
"Bertrand Lenoir-Welter" <bertrand-dot-2006-at-galaad-dot-net> wrote in message news:43bcdd67$0$20149$
Vincent Burel :
> Remarques que beaucoup écrirait : > if (mon_pointeur) delete(mon_pointeur);
Ah, zut, c'est ce que j'écris au quotidien.
Suis-je encore un programmeur expérimenté ?
oui, mais vous n'etes pas rigoureux... Ca viendra avec le temps :-)
VB
TERENCE
"John Deuf" a écrit dans le message de news:
C'est l'inverse : ca marche parce que c'est une norme. S'il n'y avait que IBM qui avait pu construire des cartes vga, faute de norme, ce standard aurait disparu.
VGA est normalisé ? Et quel serait l'organisme normalisateur ?
"John Deuf" <nomail@dontuseit.com> a écrit dans le message de news:Xns9741E46E6DE91grospenis@212.27.42.73...
C'est l'inverse : ca marche parce que c'est une norme. S'il n'y avait
que IBM qui avait pu construire des cartes vga, faute de norme, ce
standard aurait disparu.
VGA est normalisé ?
Et quel serait l'organisme normalisateur ?
C'est l'inverse : ca marche parce que c'est une norme. S'il n'y avait que IBM qui avait pu construire des cartes vga, faute de norme, ce standard aurait disparu.
VGA est normalisé ? Et quel serait l'organisme normalisateur ?
Arnold McDonald \(AMcD\)
Bertrand Lenoir-Welter wrote:
Je vois que tu t'es trompé de forum. Ici, c'est la programmation Windows et pas autre chose. N'admets rien, je ne bosse QUE sous Windows et ça changera pas demain. Alors la portabilité et autres utopies, je la laisse aux boîtes qui ont envie de donner dans le multiplateforme sans s'y casser les dents (elles sont pas nombreuses) et aussi aux profs de fac. J'ai rien contre eux, hein, mais moi je bosse dans le monde réel.
Eh voilà ! Mais ça, les Linuxiens/étudiants/universitaires, zélateurs du libres, GNU, OpenSource et autres chantres de la portabilité auront toujours du mal à le comprendre. Ils font de la philosophie eux, ils oeuvrent à ce que sur cette planète l'informatique soit un monde parfait. Ils veulent imposer leur point de vue sans tenir compte du fait que d'autres gagnent simplement leur vie en n'étant pas comme eux, en ayant pas leur point de vue.
Gagner sa vie en codant sous Windows uniquement, des milliers d'entreprises ou indépendants y arrivent. Oui, ils suivent principalement les standards et normes krosoftiennes pour cela. Et alors ? C'est ce qui les nourrit ! Que leur code soit maintenable et déjà multiOS/Kro leur suffit largement. Que leur importe qu'il soit portable sous des OS pour lesquels ils ne gagneront jamais rien ?
Ce qui me fait marrer, c'est qu'aujourd'hui que l'informatique ets relativement fiable et utilisable, ces zélateurs prennent le sabre de combat. Pourtant, c'est au début qu'il fallait s'ériger en défenseur de normes universelles. Il y a 20 ans, IBM disait le PC ce sera ça et tout le monde fermait sa gueule et obéissait. Il y avait pas beaucoup de collégialité dans l'établissement des standards/normes en ces temps-là pourtant...
-- Arnold McDonald (AMcD)
http://arnold.mcdonald.free.fr/
Bertrand Lenoir-Welter wrote:
Je vois que tu t'es trompé de forum. Ici, c'est la programmation
Windows et pas autre chose. N'admets rien, je ne bosse QUE sous
Windows et ça changera pas demain. Alors la portabilité et autres
utopies, je la laisse aux boîtes qui ont envie de donner dans le
multiplateforme sans s'y casser les dents (elles sont pas nombreuses)
et aussi aux profs de fac. J'ai rien contre eux, hein, mais moi je
bosse dans le monde réel.
Eh voilà ! Mais ça, les Linuxiens/étudiants/universitaires, zélateurs du
libres, GNU, OpenSource et autres chantres de la portabilité auront toujours
du mal à le comprendre. Ils font de la philosophie eux, ils oeuvrent à ce
que sur cette planète l'informatique soit un monde parfait. Ils veulent
imposer leur point de vue sans tenir compte du fait que d'autres gagnent
simplement leur vie en n'étant pas comme eux, en ayant pas leur point de
vue.
Gagner sa vie en codant sous Windows uniquement, des milliers d'entreprises
ou indépendants y arrivent. Oui, ils suivent principalement les standards et
normes krosoftiennes pour cela. Et alors ? C'est ce qui les nourrit ! Que
leur code soit maintenable et déjà multiOS/Kro leur suffit largement. Que
leur importe qu'il soit portable sous des OS pour lesquels ils ne gagneront
jamais rien ?
Ce qui me fait marrer, c'est qu'aujourd'hui que l'informatique ets
relativement fiable et utilisable, ces zélateurs prennent le sabre de
combat. Pourtant, c'est au début qu'il fallait s'ériger en défenseur de
normes universelles. Il y a 20 ans, IBM disait le PC ce sera ça et tout le
monde fermait sa gueule et obéissait. Il y avait pas beaucoup de
collégialité dans l'établissement des standards/normes en ces temps-là
pourtant...
Je vois que tu t'es trompé de forum. Ici, c'est la programmation Windows et pas autre chose. N'admets rien, je ne bosse QUE sous Windows et ça changera pas demain. Alors la portabilité et autres utopies, je la laisse aux boîtes qui ont envie de donner dans le multiplateforme sans s'y casser les dents (elles sont pas nombreuses) et aussi aux profs de fac. J'ai rien contre eux, hein, mais moi je bosse dans le monde réel.
Eh voilà ! Mais ça, les Linuxiens/étudiants/universitaires, zélateurs du libres, GNU, OpenSource et autres chantres de la portabilité auront toujours du mal à le comprendre. Ils font de la philosophie eux, ils oeuvrent à ce que sur cette planète l'informatique soit un monde parfait. Ils veulent imposer leur point de vue sans tenir compte du fait que d'autres gagnent simplement leur vie en n'étant pas comme eux, en ayant pas leur point de vue.
Gagner sa vie en codant sous Windows uniquement, des milliers d'entreprises ou indépendants y arrivent. Oui, ils suivent principalement les standards et normes krosoftiennes pour cela. Et alors ? C'est ce qui les nourrit ! Que leur code soit maintenable et déjà multiOS/Kro leur suffit largement. Que leur importe qu'il soit portable sous des OS pour lesquels ils ne gagneront jamais rien ?
Ce qui me fait marrer, c'est qu'aujourd'hui que l'informatique ets relativement fiable et utilisable, ces zélateurs prennent le sabre de combat. Pourtant, c'est au début qu'il fallait s'ériger en défenseur de normes universelles. Il y a 20 ans, IBM disait le PC ce sera ça et tout le monde fermait sa gueule et obéissait. Il y avait pas beaucoup de collégialité dans l'établissement des standards/normes en ces temps-là pourtant...
-- Arnold McDonald (AMcD)
http://arnold.mcdonald.free.fr/
halfwolf
Vincent Burel a écrit :
Remarques que beaucoup écrirait : if (mon_pointeur) delete(mon_pointeur);
Alors là c'est pire, car l'opération logique peut varier d'un compilo à l'autre (certains compilo ne considère que le bit 0), la valeur du poin teur null peut ne pas etre ZERO d'un systeme à l'autre.
Je n'ai pas très bien compris ce que tu veux dire. Est-ce que tu veux dire que c'est le compilateur qui est en faute car il fait une supposition erronée sur l'implémentation physique du pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs buggués, il vaut mieux faire un test explicite ?
HalfWolf
Vincent Burel a écrit :
Remarques que beaucoup écrirait :
if (mon_pointeur) delete(mon_pointeur);
Alors là c'est pire, car l'opération logique peut varier d'un compilo à
l'autre (certains compilo ne considère que le bit 0), la valeur du poin teur
null peut ne pas etre ZERO d'un systeme à l'autre.
Je n'ai pas très bien compris ce que tu veux dire.
Est-ce que tu veux dire que c'est le compilateur qui est en faute car
il fait une supposition erronée sur l'implémentation physique du
pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs
buggués, il vaut mieux faire un test explicite ?
Remarques que beaucoup écrirait : if (mon_pointeur) delete(mon_pointeur);
Alors là c'est pire, car l'opération logique peut varier d'un compilo à l'autre (certains compilo ne considère que le bit 0), la valeur du poin teur null peut ne pas etre ZERO d'un systeme à l'autre.
Je n'ai pas très bien compris ce que tu veux dire. Est-ce que tu veux dire que c'est le compilateur qui est en faute car il fait une supposition erronée sur l'implémentation physique du pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs buggués, il vaut mieux faire un test explicite ?
HalfWolf
Vincent Burel
wrote in message news:
Vincent Burel a écrit :
Remarques que beaucoup écrirait : if (mon_pointeur) delete(mon_pointeur);
Alors là c'est pire, car l'opération logique peut varier d'un compilo à l'autre (certains compilo ne considère que le bit 0), la valeur du
pointeur
null peut ne pas etre ZERO d'un systeme à l'autre.
Je n'ai pas très bien compris ce que tu veux dire.
Est-ce que tu veux dire que c'est le compilateur qui est en faute car il fait une supposition erronée sur l'implémentation physique du pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs buggués, il vaut mieux faire un test explicite ?
Je ne parle pas de compilateur buggé, je parle de certains compilo "c/c++" (notamment pour DSP) qui peuvent faire une évaluation bolean sur un seul bit (considéré comme FALSE si le bit 0 est à 0) et non pas sur la valeur complete. Ecrire "if(mon_pointeur)" c'est considérer que "mon_pointeur" est un bolean ou bien qu'il possède toutes les propriétés d'un bolean (ce qui est largement faux).
il n'y pas d'implementation physique du pointeur NULL. NULL est un define qui sous Windows est egal à ZERO. mais qui pourrait etre égal à 0x00000010, car cette adresse là non plus n'est pas valide. pourquoi pas !? y'a des systemes ou les pointeurs d'objets sont des indices basés sur zéro et où le pointeur null est -1 = 0xFFFFFFFF.
Il faut donc savoir ce qu'on écrit quand on code. Et ainsi faire en sorte d'éliminer le maximum de potentialité d'erreur, de malentendu possible, qui seront autant de point faible a vérifier en cas de soucis...
VB
<halfwolf@free.fr> wrote in message
news:1136461969.657431.210780@g43g2000cwa.googlegroups.com...
Vincent Burel a écrit :
Remarques que beaucoup écrirait :
if (mon_pointeur) delete(mon_pointeur);
Alors là c'est pire, car l'opération logique peut varier d'un compilo à
l'autre (certains compilo ne considère que le bit 0), la valeur du
pointeur
null peut ne pas etre ZERO d'un systeme à l'autre.
Je n'ai pas très bien compris ce que tu veux dire.
Est-ce que tu veux dire que c'est le compilateur qui est en faute car
il fait une supposition erronée sur l'implémentation physique du
pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs
buggués, il vaut mieux faire un test explicite ?
Je ne parle pas de compilateur buggé, je parle de certains compilo "c/c++"
(notamment pour DSP) qui peuvent faire une évaluation bolean sur un seul bit
(considéré comme FALSE si le bit 0 est à 0) et non pas sur la valeur
complete. Ecrire "if(mon_pointeur)" c'est considérer que "mon_pointeur" est
un bolean ou bien qu'il possède toutes les propriétés d'un bolean (ce qui
est largement faux).
il n'y pas d'implementation physique du pointeur NULL. NULL est un define
qui sous Windows est egal à ZERO. mais qui pourrait etre égal à 0x00000010,
car cette adresse là non plus n'est pas valide. pourquoi pas !? y'a des
systemes ou les pointeurs d'objets sont des indices basés sur zéro et où le
pointeur null est -1 = 0xFFFFFFFF.
Il faut donc savoir ce qu'on écrit quand on code. Et ainsi faire en sorte
d'éliminer le maximum de potentialité d'erreur, de malentendu possible, qui
seront autant de point faible a vérifier en cas de soucis...
Remarques que beaucoup écrirait : if (mon_pointeur) delete(mon_pointeur);
Alors là c'est pire, car l'opération logique peut varier d'un compilo à l'autre (certains compilo ne considère que le bit 0), la valeur du
pointeur
null peut ne pas etre ZERO d'un systeme à l'autre.
Je n'ai pas très bien compris ce que tu veux dire.
Est-ce que tu veux dire que c'est le compilateur qui est en faute car il fait une supposition erronée sur l'implémentation physique du pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs buggués, il vaut mieux faire un test explicite ?
Je ne parle pas de compilateur buggé, je parle de certains compilo "c/c++" (notamment pour DSP) qui peuvent faire une évaluation bolean sur un seul bit (considéré comme FALSE si le bit 0 est à 0) et non pas sur la valeur complete. Ecrire "if(mon_pointeur)" c'est considérer que "mon_pointeur" est un bolean ou bien qu'il possède toutes les propriétés d'un bolean (ce qui est largement faux).
il n'y pas d'implementation physique du pointeur NULL. NULL est un define qui sous Windows est egal à ZERO. mais qui pourrait etre égal à 0x00000010, car cette adresse là non plus n'est pas valide. pourquoi pas !? y'a des systemes ou les pointeurs d'objets sont des indices basés sur zéro et où le pointeur null est -1 = 0xFFFFFFFF.
Il faut donc savoir ce qu'on écrit quand on code. Et ainsi faire en sorte d'éliminer le maximum de potentialité d'erreur, de malentendu possible, qui seront autant de point faible a vérifier en cas de soucis...
VB
Cyrille Szymanski
John Deuf wrote in news::
Vincent Burel :
> le programmeur expérimenté écrira plutot : > > if (mon_pointeur != NULL) delete(mon_pointeur); > mon_pointeur=NULL;
Non.
si
Non, c'est du code qu'on ecrit seulement pour les vieux compilo. Pourquoi mettre un if alors que sans if c'est du code c++ correct.
Dans le même genre il y a les joyeusetés du style des évaluations paresseuses. Certains te diront que c'est parfaitement normal de les utiliser, d'autres trouveront que ça peut avoir trop d'effets de bord.
C'est une question d'habitude et la norme ne changera rien au fait qu'il faut du temps pour s'approprier le code d'autrui.
Dans le fond, les normes c'est bien qu'il y en ait, mais on s'en fiche un peu. Moi j'en ferai pas une question d'honneur. D'ailleurs qui programme en vanilla C ou C++ ?
My 2 cents.
« f(foo) && g(bar) »
n'est pas équivalent à :
a = f(foo); b = g(bar); « a && b »
mais au contraire à :
f(foo) ? g(bar) : false
ou encore :
a = f(foo); b = false; if( a ) b = g(bar); « a && b »
-- Cyrille Szymanski
John Deuf <nomail@dontuseit.com> wrote in
news:Xns9741EEDBFD2E5grospenis@212.27.42.73:
Vincent Burel :
> le programmeur expérimenté écrira plutot :
>
> if (mon_pointeur != NULL) delete(mon_pointeur);
> mon_pointeur=NULL;
Non.
si
Non, c'est du code qu'on ecrit seulement pour les vieux compilo.
Pourquoi mettre un if alors que sans if c'est du code c++ correct.
Dans le même genre il y a les joyeusetés du style des évaluations
paresseuses. Certains te diront que c'est parfaitement normal de les
utiliser, d'autres trouveront que ça peut avoir trop d'effets de bord.
C'est une question d'habitude et la norme ne changera rien au fait qu'il
faut du temps pour s'approprier le code d'autrui.
Dans le fond, les normes c'est bien qu'il y en ait, mais on s'en fiche un
peu. Moi j'en ferai pas une question d'honneur. D'ailleurs qui programme
en vanilla C ou C++ ?
My 2 cents.
« f(foo) && g(bar) »
n'est pas équivalent à :
a = f(foo);
b = g(bar);
« a && b »
mais au contraire à :
f(foo) ? g(bar) : false
ou encore :
a = f(foo);
b = false;
if( a ) b = g(bar);
« a && b »
> le programmeur expérimenté écrira plutot : > > if (mon_pointeur != NULL) delete(mon_pointeur); > mon_pointeur=NULL;
Non.
si
Non, c'est du code qu'on ecrit seulement pour les vieux compilo. Pourquoi mettre un if alors que sans if c'est du code c++ correct.
Dans le même genre il y a les joyeusetés du style des évaluations paresseuses. Certains te diront que c'est parfaitement normal de les utiliser, d'autres trouveront que ça peut avoir trop d'effets de bord.
C'est une question d'habitude et la norme ne changera rien au fait qu'il faut du temps pour s'approprier le code d'autrui.
Dans le fond, les normes c'est bien qu'il y en ait, mais on s'en fiche un peu. Moi j'en ferai pas une question d'honneur. D'ailleurs qui programme en vanilla C ou C++ ?
My 2 cents.
« f(foo) && g(bar) »
n'est pas équivalent à :
a = f(foo); b = g(bar); « a && b »
mais au contraire à :
f(foo) ? g(bar) : false
ou encore :
a = f(foo); b = false; if( a ) b = g(bar); « a && b »
-- Cyrille Szymanski
halfwolf
Vincent Burel wrote:
wrote in message news:
Vincent Burel a écrit :
> Remarques que beaucoup écrirait : > if (mon_pointeur) delete(mon_pointeur); > > Alors là c'est pire, car l'opération logique peut varier d'un compi lo à > l'autre (certains compilo ne considère que le bit 0), la valeur du pointeur > null peut ne pas etre ZERO d'un systeme à l'autre.
>Je n'ai pas très bien compris ce que tu veux dire. > Est-ce que tu veux dire que c'est le compilateur qui est en faute car > il fait une supposition erronée sur l'implémentation physique du > pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs > buggués, il vaut mieux faire un test explicite ?
Je ne parle pas de compilateur buggé, je parle de certains compilo "c/c ++" (notamment pour DSP) qui peuvent faire une évaluation bolean sur un seu l bit (considéré comme FALSE si le bit 0 est à 0) et non pas sur la valeur complete. Ecrire "if(mon_pointeur)" c'est considérer que "mon_pointeur" est un bolean ou bien qu'il possède toutes les propriétés d'un bolean ( ce qui est largement faux).
il n'y pas d'implementation physique du pointeur NULL. NULL est un define qui sous Windows est egal à ZERO. mais qui pourrait etre égal à 0x0 0000010, car cette adresse là non plus n'est pas valide. pourquoi pas !? y'a des systemes ou les pointeurs d'objets sont des indices basés sur zéro et où le pointeur null est -1 = 0xFFFFFFFF.
Je ne sais pas en C++ mais en C il est garanti que NULL vaut (void*)0 par la Norme (et je pense que ça doit être pareil en C++). Si la représentation en mémoire du pointeur est 0xFFFFFFFF le compilateur fait l'abstraction. Donc le cas que tu décris serait un bug du compilateur. D'où mon incompréhension sur le sens exact de ta phrase.
HalfWolf
Vincent Burel wrote:
<halfwolf@free.fr> wrote in message
news:1136461969.657431.210780@g43g2000cwa.googlegroups.com...
Vincent Burel a écrit :
> Remarques que beaucoup écrirait :
> if (mon_pointeur) delete(mon_pointeur);
>
> Alors là c'est pire, car l'opération logique peut varier d'un compi lo à
> l'autre (certains compilo ne considère que le bit 0), la valeur du
pointeur
> null peut ne pas etre ZERO d'un systeme à l'autre.
>Je n'ai pas très bien compris ce que tu veux dire.
> Est-ce que tu veux dire que c'est le compilateur qui est en faute car
> il fait une supposition erronée sur l'implémentation physique du
> pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs
> buggués, il vaut mieux faire un test explicite ?
Je ne parle pas de compilateur buggé, je parle de certains compilo "c/c ++"
(notamment pour DSP) qui peuvent faire une évaluation bolean sur un seu l bit
(considéré comme FALSE si le bit 0 est à 0) et non pas sur la valeur
complete. Ecrire "if(mon_pointeur)" c'est considérer que "mon_pointeur" est
un bolean ou bien qu'il possède toutes les propriétés d'un bolean ( ce qui
est largement faux).
il n'y pas d'implementation physique du pointeur NULL. NULL est un define
qui sous Windows est egal à ZERO. mais qui pourrait etre égal à 0x0 0000010,
car cette adresse là non plus n'est pas valide. pourquoi pas !? y'a des
systemes ou les pointeurs d'objets sont des indices basés sur zéro et où le
pointeur null est -1 = 0xFFFFFFFF.
Je ne sais pas en C++ mais en C il est garanti que NULL vaut (void*)0
par la Norme (et je pense que ça doit être pareil en C++).
Si la représentation en mémoire du pointeur est 0xFFFFFFFF le
compilateur fait l'abstraction. Donc le cas que tu décris serait un
bug du compilateur. D'où mon incompréhension sur le sens exact de ta
phrase.
> Remarques que beaucoup écrirait : > if (mon_pointeur) delete(mon_pointeur); > > Alors là c'est pire, car l'opération logique peut varier d'un compi lo à > l'autre (certains compilo ne considère que le bit 0), la valeur du pointeur > null peut ne pas etre ZERO d'un systeme à l'autre.
>Je n'ai pas très bien compris ce que tu veux dire. > Est-ce que tu veux dire que c'est le compilateur qui est en faute car > il fait une supposition erronée sur l'implémentation physique du > pointeur NULL et que dans ce cas, vu qu'il y a des compilateurs > buggués, il vaut mieux faire un test explicite ?
Je ne parle pas de compilateur buggé, je parle de certains compilo "c/c ++" (notamment pour DSP) qui peuvent faire une évaluation bolean sur un seu l bit (considéré comme FALSE si le bit 0 est à 0) et non pas sur la valeur complete. Ecrire "if(mon_pointeur)" c'est considérer que "mon_pointeur" est un bolean ou bien qu'il possède toutes les propriétés d'un bolean ( ce qui est largement faux).
il n'y pas d'implementation physique du pointeur NULL. NULL est un define qui sous Windows est egal à ZERO. mais qui pourrait etre égal à 0x0 0000010, car cette adresse là non plus n'est pas valide. pourquoi pas !? y'a des systemes ou les pointeurs d'objets sont des indices basés sur zéro et où le pointeur null est -1 = 0xFFFFFFFF.
Je ne sais pas en C++ mais en C il est garanti que NULL vaut (void*)0 par la Norme (et je pense que ça doit être pareil en C++). Si la représentation en mémoire du pointeur est 0xFFFFFFFF le compilateur fait l'abstraction. Donc le cas que tu décris serait un bug du compilateur. D'où mon incompréhension sur le sens exact de ta phrase.