Bonjour,
Questions aux développeurs, s'il y en a sur ce groupe :
- Quel est votre langage de développement multi-plateforme préféré ?
- Quel est le meilleur IDE pour Java ?
- Quelqu'un a-t-il essayé Mono ? Est-ce une bonne solution ?
- Y a-t-il quelqu'un qui utilise Kylix ?
Voilà, réponses, commentaires, avis autorisés ou non sont les bienvenus...
On Fri, 27 Aug 2004 16:59:58 +0200, Laurent BERNE wrote:
Si tu as envie de rire, vas faire un tour sur fclc++ et décrit comment le C++ a une gestion pourrie des pointeurs. Tu vas va voir tu vas y déclencher l'hilarité générale !
Je ne comprends pas ce que tu dis et en quoi c'est lié à mon point de vue, je n'ai jamais dit que le C++ avait une gestion pourrie des pointeurs.
C'est juste que la STL est bien gentille, mais elle ne règle pas de façon magique les problèmes ancestraux liés au garbage collecting automatique (références cycliques). Il faut parfois réfléchir un peu, et si on ne le fait pas on se retrouve exactement dans le cas des pointeurs perdus en C : que ce soient des pointeurs qu'on utilise en C++ ou des smart/auto/uber pointers, c'est pareil.
Sam. -- Sam Hocevar <http://sam.zoy.org/>
Racism is so gay! How could you ever be racist?
On Fri, 27 Aug 2004 16:59:58 +0200, Laurent BERNE wrote:
Si tu as envie de rire, vas faire un tour sur fclc++ et décrit comment
le C++ a une gestion pourrie des pointeurs.
Tu vas va voir tu vas y déclencher l'hilarité générale !
Je ne comprends pas ce que tu dis et en quoi c'est lié à mon point
de vue, je n'ai jamais dit que le C++ avait une gestion pourrie des
pointeurs.
C'est juste que la STL est bien gentille, mais elle ne règle pas
de façon magique les problèmes ancestraux liés au garbage collecting
automatique (références cycliques). Il faut parfois réfléchir un peu, et
si on ne le fait pas on se retrouve exactement dans le cas des pointeurs
perdus en C : que ce soient des pointeurs qu'on utilise en C++ ou des
smart/auto/uber pointers, c'est pareil.
Sam.
--
Sam Hocevar <sam@zoy.org> <http://sam.zoy.org/>
On Fri, 27 Aug 2004 16:59:58 +0200, Laurent BERNE wrote:
Si tu as envie de rire, vas faire un tour sur fclc++ et décrit comment le C++ a une gestion pourrie des pointeurs. Tu vas va voir tu vas y déclencher l'hilarité générale !
Je ne comprends pas ce que tu dis et en quoi c'est lié à mon point de vue, je n'ai jamais dit que le C++ avait une gestion pourrie des pointeurs.
C'est juste que la STL est bien gentille, mais elle ne règle pas de façon magique les problèmes ancestraux liés au garbage collecting automatique (références cycliques). Il faut parfois réfléchir un peu, et si on ne le fait pas on se retrouve exactement dans le cas des pointeurs perdus en C : que ce soient des pointeurs qu'on utilise en C++ ou des smart/auto/uber pointers, c'est pareil.
Sam. -- Sam Hocevar <http://sam.zoy.org/>
Racism is so gay! How could you ever be racist?
Manuel Leclerc
Merci, tu es presque aussi drôle que Bjarne Stroustrup, qui à la page 220 de /The Design and Evolution of C++/ écrivait "memory leaks are quite acceptable in many applications".
Si tu as envie de rire, vas faire un tour sur fclc++ et décrit comment le C++ a une gestion pourrie des pointeurs. Tu vas va voir tu vas y déclencher l'hilarité générale !
Peut être n'as-tu pas compris le message de Sam. Moi, j'ai compris qu'il parlait de memory leak de la faute du programmeur, pas de la faute du langage.
-- I first wrote it in PL/I, then started over in assembler language when the PL/I program was too big to fit in the computer. --Richard Stallman
Merci, tu es presque aussi drôle que Bjarne Stroustrup, qui à la
page 220 de /The Design and Evolution of C++/ écrivait "memory leaks
are quite acceptable in many applications".
Si tu as envie de rire, vas faire un tour sur fclc++ et décrit comment
le C++ a une gestion pourrie des pointeurs.
Tu vas va voir tu vas y déclencher l'hilarité générale !
Peut être n'as-tu pas compris le message de Sam. Moi, j'ai compris qu'il
parlait de memory leak de la faute du programmeur, pas de la faute du
langage.
--
I first wrote it in PL/I, then started over in assembler language when
the PL/I program was too big to fit in the computer.
--Richard Stallman
Merci, tu es presque aussi drôle que Bjarne Stroustrup, qui à la page 220 de /The Design and Evolution of C++/ écrivait "memory leaks are quite acceptable in many applications".
Si tu as envie de rire, vas faire un tour sur fclc++ et décrit comment le C++ a une gestion pourrie des pointeurs. Tu vas va voir tu vas y déclencher l'hilarité générale !
Peut être n'as-tu pas compris le message de Sam. Moi, j'ai compris qu'il parlait de memory leak de la faute du programmeur, pas de la faute du langage.
-- I first wrote it in PL/I, then started over in assembler language when the PL/I program was too big to fit in the computer. --Richard Stallman
Manuel Leclerc
[snip smart pointer]
Et quand on veut que l'objet survive à la fonction qui l'a créé ?
-- <@Logan> I spent a minute looking at my own code by accident. <@Logan> I was thinking "What the hell is this guy doing?"
[snip smart pointer]
Et quand on veut que l'objet survive à la fonction qui
l'a créé ?
--
<@Logan> I spent a minute looking at my own code by accident.
<@Logan> I was thinking "What the hell is this guy doing?"
Je sais pas pour les pointeurs automatiques de C++ mais, en Ada95, il existe une notion de "pool" : les zones allouées dans un bloc le sont dans un pool mémoire qui est détruit (libéré) à la sortie du bloc. Cela implique, évidemment d'allouer dans un bloc donc, en gros, c'est intéressant pour les objets temporaires, qui n'ont pas besoin d'être utilisés ailleurs qu'à l'endroit où ils sont créés. -- Éric Jacoboni, né il y a 1397065677 secondes
"Thierry B." <oulala@chez.com> writes:
Et ça ramasse les miettes comment ?
Je sais pas pour les pointeurs automatiques de C++ mais, en Ada95, il
existe une notion de "pool" : les zones allouées dans un bloc le sont
dans un pool mémoire qui est détruit (libéré) à la sortie du
bloc. Cela implique, évidemment d'allouer dans un bloc donc, en gros,
c'est intéressant pour les objets temporaires, qui n'ont pas besoin
d'être utilisés ailleurs qu'à l'endroit où ils sont créés.
--
Éric Jacoboni, né il y a 1397065677 secondes
Je sais pas pour les pointeurs automatiques de C++ mais, en Ada95, il existe une notion de "pool" : les zones allouées dans un bloc le sont dans un pool mémoire qui est détruit (libéré) à la sortie du bloc. Cela implique, évidemment d'allouer dans un bloc donc, en gros, c'est intéressant pour les objets temporaires, qui n'ont pas besoin d'être utilisés ailleurs qu'à l'endroit où ils sont créés. -- Éric Jacoboni, né il y a 1397065677 secondes
Laurent BERNE
Laurent BERNE writes:
Au lieu de faire
Maclasse *pMaclasse = new pMaclasse; // ca c'est du vieux code C tout pourrave ... //Traitement sur pMaclasse ... delete pMaclasse;
Non, ça c'est du C++. new et delete n'existent pas en C (et la forme // pour les commentaires n'existe pas non plus dans le vieux code C). exact, c'est malloc et free en C.
Mais c'est un lapsus révélateur de ma part.. cette syntaxe ne sers que pour l'appel de fonctions en C (du moins c'est comme ça que je les utilise..)
Cela dit, dire qu'il n'y a plus besoin de pointeurs, ni de new et delete en C++, c'est peut-être un peu excessif, non ? Non. Les seules fois où je les utilise, c'est par exemple avec des libs
externe qui ont besoins de pointeurs comme paramètre (la lib Win32 par exemple, la lib TWain aussi, ce genre de chose écrite en C..). C'est d'ailleurs pour cela qu'ils sont resté dans le C++. C'est comme les macros.. c'est de l'archaisme pour utiliser l'existant en C.
Du code C++ pur n'a pas besoin de pointeur. J'ai fait un moteur d'optimisation de découpe entièrement en C++, quelques milliers de lignes (je sais pas combien, je m'amuse pas à les compter). Pas un seul pointeur dedans. Uniquement l'outillage fourni par la STL. A l'inverse, la moindre transmission de paramètre à une interface graphique se fait par cette intermédiaire..
-- Ce n'est pas parce que tu touches le fond que tu dois t'arrêter de creuser
Maclasse *pMaclasse = new pMaclasse; // ca c'est du vieux code C tout
pourrave
...
//Traitement sur pMaclasse
...
delete pMaclasse;
Non, ça c'est du C++. new et delete n'existent pas en C (et la forme
// pour les commentaires n'existe pas non plus dans le vieux code C).
exact, c'est malloc et free en C.
Mais c'est un lapsus révélateur de ma part.. cette syntaxe ne sers que
pour l'appel de fonctions en C (du moins c'est comme ça que je les
utilise..)
Cela dit, dire qu'il n'y a plus besoin de pointeurs, ni de new et
delete en C++, c'est peut-être un peu excessif, non ?
Non. Les seules fois où je les utilise, c'est par exemple avec des libs
externe qui ont besoins de pointeurs comme paramètre (la lib Win32 par
exemple, la lib TWain aussi, ce genre de chose écrite en C..). C'est
d'ailleurs pour cela qu'ils sont resté dans le C++. C'est comme les
macros.. c'est de l'archaisme pour utiliser l'existant en C.
Du code C++ pur n'a pas besoin de pointeur.
J'ai fait un moteur d'optimisation de découpe entièrement en C++,
quelques milliers de lignes (je sais pas combien, je m'amuse pas à les
compter). Pas un seul pointeur dedans. Uniquement l'outillage fourni
par la STL.
A l'inverse, la moindre transmission de paramètre à une interface
graphique se fait par cette intermédiaire..
--
Ce n'est pas parce que tu touches le fond que tu dois t'arrêter de
creuser
Maclasse *pMaclasse = new pMaclasse; // ca c'est du vieux code C tout pourrave ... //Traitement sur pMaclasse ... delete pMaclasse;
Non, ça c'est du C++. new et delete n'existent pas en C (et la forme // pour les commentaires n'existe pas non plus dans le vieux code C). exact, c'est malloc et free en C.
Mais c'est un lapsus révélateur de ma part.. cette syntaxe ne sers que pour l'appel de fonctions en C (du moins c'est comme ça que je les utilise..)
Cela dit, dire qu'il n'y a plus besoin de pointeurs, ni de new et delete en C++, c'est peut-être un peu excessif, non ? Non. Les seules fois où je les utilise, c'est par exemple avec des libs
externe qui ont besoins de pointeurs comme paramètre (la lib Win32 par exemple, la lib TWain aussi, ce genre de chose écrite en C..). C'est d'ailleurs pour cela qu'ils sont resté dans le C++. C'est comme les macros.. c'est de l'archaisme pour utiliser l'existant en C.
Du code C++ pur n'a pas besoin de pointeur. J'ai fait un moteur d'optimisation de découpe entièrement en C++, quelques milliers de lignes (je sais pas combien, je m'amuse pas à les compter). Pas un seul pointeur dedans. Uniquement l'outillage fourni par la STL. A l'inverse, la moindre transmission de paramètre à une interface graphique se fait par cette intermédiaire..
-- Ce n'est pas parce que tu touches le fond que tu dois t'arrêter de creuser
Laurent BERNE
Thierry B. avait soumis l'idée :
Laurent BERNE wrote:
Donc selon toi, il n'y a pas (besoin|de gestion) des pointeurs en C++ ?
on fait : auto_ptr<Maclasse> pMaclasse( new T ); // pas besoin de libérer quoi que ce soit, la STL s'en charge
Et ça ramasse les miettes comment ?
Je sais pas si c'est considéré comme un garbage collector, du fait que
l'objet ne survit pas à la portée (au contraire des GC qui ont un mécanisme plutôt flou sur le sujet..).
-- Ce n'est pas parce que tu touches le fond que tu dois t'arrêter de creuser
Thierry B. avait soumis l'idée :
Laurent BERNE wrote:
Donc selon toi, il n'y a pas (besoin|de gestion) des pointeurs en C++ ?
on fait :
auto_ptr<Maclasse> pMaclasse( new T ); // pas besoin de libérer quoi que ce
soit, la STL s'en charge
Et ça ramasse les miettes comment ?
Je sais pas si c'est considéré comme un garbage collector, du fait que
l'objet ne survit pas à la portée (au contraire des GC qui ont un
mécanisme plutôt flou sur le sujet..).
--
Ce n'est pas parce que tu touches le fond que tu dois t'arrêter de
creuser