Le Sun, 01 Aug 2004 12:01:42 +0200, Jean-Marc Bourguet a écrit :
"Florent 'flure' C." writes:
Le Sat, 31 Jul 2004 22:37:09 +0200, dark poulpo a écrit :
qu'en pensez-vous?
Pourquoi pas plutôt ceci :
C'est peut-être du Java, certainement pas du C++.
} finally {
A+
Argh ! Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
-- Florent "flure" C. Décrypter l'@ pour répondre Coders don't die, they just JMP without RET !
Le Sun, 01 Aug 2004 12:01:42 +0200, Jean-Marc Bourguet a écrit :
Le Sat, 31 Jul 2004 22:37:09 +0200, dark poulpo a écrit :
qu'en pensez-vous?
Pourquoi pas plutôt ceci :
C'est peut-être du Java, certainement pas du C++.
} finally {
A+
Argh !
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en
C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement
liée à un bloc try ...
--
Florent "flure" C.
Décrypter l'@ pour répondre
Coders don't die, they just JMP without RET !
Le Sun, 01 Aug 2004 12:01:42 +0200, Jean-Marc Bourguet a écrit :
"Florent 'flure' C." writes:
Le Sat, 31 Jul 2004 22:37:09 +0200, dark poulpo a écrit :
qu'en pensez-vous?
Pourquoi pas plutôt ceci :
C'est peut-être du Java, certainement pas du C++.
} finally {
A+
Argh ! Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
-- Florent "flure" C. Décrypter l'@ pour répondre Coders don't die, they just JMP without RET !
Fabien LE LEZ
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
-- ;-)
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C."
<flurePASDESPAM@freePASDESPAM.fr>:
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en
C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement
liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-)
J'imagine qu'on a dû rajouter un "finally" en Java parce que le
programmeur n'a pas une parfaite maîtrise de la durée de vie des
objets ?
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
-- ;-)
drkm
Fabien LE LEZ writes:
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
J'avais un cours de Java, cette année. Je me suis donc vite renseigné sur les différences entre C++ et Java. Lorsque j'ai appris les différences au niveau de l'allocation, la durée de vie, pas de destructeur, etc., je me suis de suite demandé comment implémenter l'idiome RAII.
Pour la petite histoire, j'ai posé la question le lendemain au prof, à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen, mais que de toute façon, un truc tordu comme ça ne devait servir à rien.
Ahem.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Fabien LE LEZ <gramster@gramster.com> writes:
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C."
<flurePASDESPAM@freePASDESPAM.fr>:
Ben non. Et, en pratique, on s'en passe plutôt bien :-)
J'imagine qu'on a dû rajouter un "finally" en Java parce que le
programmeur n'a pas une parfaite maîtrise de la durée de vie des
objets ?
J'avais un cours de Java, cette année. Je me suis donc vite
renseigné sur les différences entre C++ et Java. Lorsque j'ai appris
les différences au niveau de l'allocation, la durée de vie, pas de
destructeur, etc., je me suis de suite demandé comment implémenter
l'idiome RAII.
Pour la petite histoire, j'ai posé la question le lendemain au prof,
à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen,
mais que de toute façon, un truc tordu comme ça ne devait servir à
rien.
Ahem.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
J'avais un cours de Java, cette année. Je me suis donc vite renseigné sur les différences entre C++ et Java. Lorsque j'ai appris les différences au niveau de l'allocation, la durée de vie, pas de destructeur, etc., je me suis de suite demandé comment implémenter l'idiome RAII.
Pour la petite histoire, j'ai posé la question le lendemain au prof, à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen, mais que de toute façon, un truc tordu comme ça ne devait servir à rien.
Ahem.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Fabien LE LEZ
On Sun, 01 Aug 2004 23:59:31 +0200, drkm :
Pour la petite histoire, j'ai posé la question le lendemain au prof, à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen, mais que de toute façon, un truc tordu comme ça ne devait servir à rien.
Héhé... faut croire que la philosophie de programmation en Java (ou C#, qui a aussi un garbage collector je crois) est très différente de celle du C++. En fait Java est quelque part entre C et C++ : il y a la notion d'objet, mais pas la notion de durée de vie des objets. Et donc, je suppose, aucun équivalent possible à fstream (fichier à fermeture automatique).
-- ;-)
On Sun, 01 Aug 2004 23:59:31 +0200, drkm <usenet.fclcxx@fgeorges.org>:
Pour la petite histoire, j'ai posé la question le lendemain au prof,
à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen,
mais que de toute façon, un truc tordu comme ça ne devait servir à
rien.
Héhé... faut croire que la philosophie de programmation en Java (ou
C#, qui a aussi un garbage collector je crois) est très différente de
celle du C++.
En fait Java est quelque part entre C et C++ : il y a la notion
d'objet, mais pas la notion de durée de vie des objets. Et donc, je
suppose, aucun équivalent possible à fstream (fichier à fermeture
automatique).
Pour la petite histoire, j'ai posé la question le lendemain au prof, à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen, mais que de toute façon, un truc tordu comme ça ne devait servir à rien.
Héhé... faut croire que la philosophie de programmation en Java (ou C#, qui a aussi un garbage collector je crois) est très différente de celle du C++. En fait Java est quelque part entre C et C++ : il y a la notion d'objet, mais pas la notion de durée de vie des objets. Et donc, je suppose, aucun équivalent possible à fstream (fichier à fermeture automatique).
-- ;-)
Fabien LE LEZ
On Sun, 01 Aug 2004 23:59:31 +0200, drkm :
un truc tordu comme ça ne devait servir à rien.
Remarque, un langage aussi tordu que le C++ (et je pèse mes mots) ne doit pas pouvoir servir à grand-chose non plus.
-- ;-)
On Sun, 01 Aug 2004 23:59:31 +0200, drkm <usenet.fclcxx@fgeorges.org>:
un truc tordu comme ça ne devait servir à
rien.
Remarque, un langage aussi tordu que le C++ (et je pèse mes mots) ne
doit pas pouvoir servir à grand-chose non plus.
Remarque, un langage aussi tordu que le C++ (et je pèse mes mots) ne doit pas pouvoir servir à grand-chose non plus.
-- ;-)
Gabriel Dos Reis
drkm writes:
| Pour la petite histoire, j'ai posé la question le lendemain au prof, | à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen, | mais que de toute façon, un truc tordu comme ça ne devait servir à | rien.
Je suppose qu'il ne fait que répéter la propagande qu'il a dû probablement lire dans figmag.
| Ahem.
Yep.
-- Gaby
drkm <usenet.fclcxx@fgeorges.org> writes:
| Pour la petite histoire, j'ai posé la question le lendemain au prof,
| à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen,
| mais que de toute façon, un truc tordu comme ça ne devait servir à
| rien.
Je suppose qu'il ne fait que répéter la propagande qu'il a dû
probablement lire dans figmag.
| Pour la petite histoire, j'ai posé la question le lendemain au prof, | à qui j'ai dû expliquer RAII. Il m'a dit qu'il n'y avait pas moyen, | mais que de toute façon, un truc tordu comme ça ne devait servir à | rien.
Je suppose qu'il ne fait que répéter la propagande qu'il a dû probablement lire dans figmag.
| Ahem.
Yep.
-- Gaby
Florent 'flure' C.
Le Sun, 01 Aug 2004 23:28:33 +0200, Fabien LE LEZ a écrit :
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire :
Ou alors, existe-t-il un moyen en C++ de faire cela, et que je ne connaitrais pas ?
-- Florent "flure" C. Décrypter l'@ pour répondre Coders don't die, they just JMP without RET !
Le Sun, 01 Aug 2004 23:28:33 +0200, Fabien LE LEZ a écrit :
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C."
<flurePASDESPAM@freePASDESPAM.fr>:
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en
C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement
liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-)
J'imagine qu'on a dû rajouter un "finally" en Java parce que le
programmeur n'a pas une parfaite maîtrise de la durée de vie des
objets ?
Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire :
Le Sun, 01 Aug 2004 23:28:33 +0200, Fabien LE LEZ a écrit :
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire :
Ou alors, existe-t-il un moyen en C++ de faire cela, et que je ne connaitrais pas ?
-- Florent "flure" C. Décrypter l'@ pour répondre Coders don't die, they just JMP without RET !
Christophe de VIENNE
Florent 'flure' C. wrote:
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire :
Si tu veux absolument une allocation dynamique de 'UneClasse' :
try { std::auto_ptr<UneClasse> unObject ( new UneClasse ); // Le destructeur de std::auto_ptr fait un delete sur le pointeur ...
Ou encore, en utilisant boost::scoped_ptr : try { boost::scoped_ptr<UneClasse> unObject ( new UneClasse ); // ...
A+
Christophe
-- Christophe de Vienne
Florent 'flure' C. wrote:
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C."
<flurePASDESPAM@freePASDESPAM.fr>:
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en
C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement
liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-)
J'imagine qu'on a dû rajouter un "finally" en Java parce que le
programmeur n'a pas une parfaite maîtrise de la durée de vie des
objets ?
Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire :
On Sun, 01 Aug 2004 23:18:01 +0200, "Florent 'flure' C." :
Au temps pour moi ! Bien que n'ayant jamais utilisé la clause finally en C++, j'étais persuadé qu'elle existait, étant pour moi obligatoirement liée à un bloc try ...
Ben non. Et, en pratique, on s'en passe plutôt bien :-) J'imagine qu'on a dû rajouter un "finally" en Java parce que le programmeur n'a pas une parfaite maîtrise de la durée de vie des objets ?
Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire :
"unObjet" est déclaré dans le bloc qui commence par la première accolade (//1) et qui se termine par la suivante (//2) ; en parler ailleurs n'a donc formellement aucun sens. De plus, si "new UneClasse()" renvoie une exception, l'assignation d'un pointeur à "unObjet" ne se fait pas, et le delete a un comportement indéfini.
Et du coup, ben... y'a vraiment moyen de faire plus élégant :-/ Donc, cf le post de Christophe pour savoir comment faire ça proprement. Note qu'utiliser "new" dans ce cas n'a pas vraiment de sens : c'est plutôt une javasserie.
-- ;-)
On Mon, 02 Aug 2004 11:15:10 +0200, "Florent 'flure' C."
<flurePASDESPAM@freePASDESPAM.fr>:
Pourtant, ne serait-ce pas plus propre
Non. Au contraire, ça ne ferait qu'encourager à faire du code pas
propre.
En prime, le code que tu proposes ne pourrait pas fonctionner :
"unObjet" est déclaré dans le bloc qui commence par la première
accolade (//1) et qui se termine par la suivante (//2) ; en parler
ailleurs n'a donc formellement aucun sens.
De plus, si "new UneClasse()" renvoie une exception, l'assignation
d'un pointeur à "unObjet" ne se fait pas, et le delete a un
comportement indéfini.
Et du coup, ben... y'a vraiment moyen de faire plus élégant :-/
Donc, cf le post de Christophe pour savoir comment faire ça
proprement.
Note qu'utiliser "new" dans ce cas n'a pas vraiment de sens : c'est
plutôt une javasserie.
"unObjet" est déclaré dans le bloc qui commence par la première accolade (//1) et qui se termine par la suivante (//2) ; en parler ailleurs n'a donc formellement aucun sens. De plus, si "new UneClasse()" renvoie une exception, l'assignation d'un pointeur à "unObjet" ne se fait pas, et le delete a un comportement indéfini.
Et du coup, ben... y'a vraiment moyen de faire plus élégant :-/ Donc, cf le post de Christophe pour savoir comment faire ça proprement. Note qu'utiliser "new" dans ce cas n'a pas vraiment de sens : c'est plutôt une javasserie.
-- ;-)
Gabriel Dos Reis
"Florent 'flure' C." writes:
| Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire : | | try { | UneClasse* unObjet = new UneClasse(); | /// | } catch (les exceptions) { | /// | } finally { | delete unObject; | }
Plus propre que quoi exctement ? Quel est exactement le problème ? Quel est la fréquence ou la gravité du problème ?
| Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire :
|
| try {
| UneClasse* unObjet = new UneClasse();
| ///
| } catch (les exceptions) {
| ///
| } finally {
| delete unObject;
| }
Plus propre que quoi exctement ?
Quel est exactement le problème ?
Quel est la fréquence ou la gravité du problème ?
| Pourtant, ne serait-ce pas plus propre si en C++ on pouvait faire : | | try { | UneClasse* unObjet = new UneClasse(); | /// | } catch (les exceptions) { | /// | } finally { | delete unObject; | }
Plus propre que quoi exctement ? Quel est exactement le problème ? Quel est la fréquence ou la gravité du problème ?