// une classe simple
class B {
public:
B(int j) : k(j) {}
inline void run () {
throw Excp("exception imprévue dans le run");
}
virtual ~B () { throw Excp("Bad B"); }
private:
int k;
};
Je comprend que l'exception déclenchée dans b.run() provoque la sortie
du bloc et donc la destruction de l'objet b. Une nouvelle exception est
alors levée. Je pensais que mes try/catch résolverais le problème, mais
ce n'est pas le cas. J'ai un message
Executable tests has exited due to signal 6 (SIGABRT).
Et rien d'autre. C'est un vrai plantage. Si je supprime l'un des deux
throw, j'ai le résultat attendu.
J'utilise gcc 3.3 sur MacOS 10.3.5.
Est-ce que quelqu'un a des explications ? Je sais comment m'en dépétrer,
ce qui m'intéresse c'est le pourquoi du comment.
Quels sont les différents mécanismes d'instanciation possible ? Les 3 mécanismes utilisés sont:
Merci.
- queried: les instances sont stockées à un endroit donné,
C'est celui utilisé par sun CC ?
-- Arnaud (Supprimez les geneurs pour me répondre)
bernard tatin
Fabien LE LEZ wrote:
On 27 Oct 2004 23:52:12 -0500, Gabriel Dos Reis :
Je regrette que le dernier XC++ soit encore aussi anti-export. :-(
Jusque-là, je ne m'étais pas du tout intéressé à export -- de toutes façons, aucun des compilos que je serais tenté d'utiliser en production ne l'implémente. Aussi, quand j'ai vu ce chapitre, je me suis dit "Tiens, bonne occasion pour essayer de comprendre à quoi ça sert." Raté. Par contre, j'ai compris pourquoi aucun éditeur ne l'implémente.
D'après toi, export aurait une réelle utilité ?
C'est quoi XC++ ?
Est-ce que Borland ou Watcom n'auraient pas aussi export ? Cela fait quelques annes que je n'y ai pas touché, je ne suis pas très sûr.
Bernard.
Fabien LE LEZ wrote:
On 27 Oct 2004 23:52:12 -0500, Gabriel Dos Reis <gdr@cs.tamu.edu>:
Je regrette que le dernier XC++ soit encore aussi anti-export. :-(
Jusque-là, je ne m'étais pas du tout intéressé à export -- de toutes
façons, aucun des compilos que je serais tenté d'utiliser en
production ne l'implémente.
Aussi, quand j'ai vu ce chapitre, je me suis dit "Tiens, bonne
occasion pour essayer de comprendre à quoi ça sert." Raté. Par contre,
j'ai compris pourquoi aucun éditeur ne l'implémente.
D'après toi, export aurait une réelle utilité ?
C'est quoi XC++ ?
Est-ce que Borland ou Watcom n'auraient pas aussi export ? Cela fait
quelques annes que je n'y ai pas touché, je ne suis pas très sûr.
Je regrette que le dernier XC++ soit encore aussi anti-export. :-(
Jusque-là, je ne m'étais pas du tout intéressé à export -- de toutes façons, aucun des compilos que je serais tenté d'utiliser en production ne l'implémente. Aussi, quand j'ai vu ce chapitre, je me suis dit "Tiens, bonne occasion pour essayer de comprendre à quoi ça sert." Raté. Par contre, j'ai compris pourquoi aucun éditeur ne l'implémente.
D'après toi, export aurait une réelle utilité ?
C'est quoi XC++ ?
Est-ce que Borland ou Watcom n'auraient pas aussi export ? Cela fait quelques annes que je n'y ai pas touché, je ne suis pas très sûr.
Bernard.
Fabien LE LEZ
On Thu, 28 Oct 2004 15:41:22 +0200, bernard tatin :
C'est quoi XC++ ?
La série "Exceptional C++" de Herb Sutter : - "Exceptional C++" - "More Exceptional C++" - "Exceptional C++ Style" dont on parle ici
-- ;-)
On Thu, 28 Oct 2004 15:41:22 +0200, bernard tatin
<bernard.tatin@nospam.tele2.fr>:
C'est quoi XC++ ?
La série "Exceptional C++" de Herb Sutter :
- "Exceptional C++"
- "More Exceptional C++"
- "Exceptional C++ Style" dont on parle ici
On Thu, 28 Oct 2004 15:41:22 +0200, bernard tatin :
C'est quoi XC++ ?
La série "Exceptional C++" de Herb Sutter : - "Exceptional C++" - "More Exceptional C++" - "Exceptional C++ Style" dont on parle ici
Merci.
Bernard.
Jean-Marc Bourguet
Arnaud Meurgues writes:
Jean-Marc Bourguet wrote:
Quels sont les différents mécanismes d'instanciation possible ? Les 3 mécanismes utilisés sont:
Merci.
- queried: les instances sont stockées à un endroit donné,
C'est celui utilisé par sun CC ?
C'est un de ceux utilisés par CC (les dernières versions permettent aussi le "greedy" en plus des choses non conformes ou offrant un controle précis au programmeur qui existent depuis un certain temps).
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Quels sont les différents mécanismes d'instanciation possible ?
Les 3 mécanismes utilisés sont:
Merci.
- queried: les instances sont stockées à un endroit donné,
C'est celui utilisé par sun CC ?
C'est un de ceux utilisés par CC (les dernières versions
permettent aussi le "greedy" en plus des choses non
conformes ou offrant un controle précis au programmeur qui
existent depuis un certain temps).
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Quels sont les différents mécanismes d'instanciation possible ? Les 3 mécanismes utilisés sont:
Merci.
- queried: les instances sont stockées à un endroit donné,
C'est celui utilisé par sun CC ?
C'est un de ceux utilisés par CC (les dernières versions permettent aussi le "greedy" en plus des choses non conformes ou offrant un controle précis au programmeur qui existent depuis un certain temps).
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Gabriel Dos Reis
Fabien LE LEZ writes:
[...]
| >C'est dommage. | | C'est peut-être pas le but, d'autant que ses lecteurs sont sensés déjà | connaître les bases -- et donc avoir une bonne idée de ce qu'est | "export".
Ce n'est pas évident. Tu viens de donner un contre-exemple ; et je ne pense pas que tu sois un cas isolé :-)
| >Et l'implémentation de EDG, elle n'existe pas, c'est ça ? | | Bon, OK, j'ai oublié le "presque".
et combien de compilos sont basés sur le front-end EDG ? Sans mentionner que EDG vend son front-end à d'autres entreprises et instituts ?
| L'idée est que implémenter "export" | dans Comeau semble avoir été un travail titanesque, et que tout le
Ah oui, c'était tellement titatnesque que cela a demandé un travail d'une équipe de 3 personnes, qui pendant la même période a implémenté un compilateur Java. Je ne dis pas que c'était un travail facile, m'enfin bon, faudrait pas pousser le bouchon non plus...
| monde ne semble pas d'accord sur l'utilité d'"export", donc la | rentabilité d'un tel travail.
As-tu lu les écrits de David Vandevoorde ?
-- Gaby
Fabien LE LEZ <gramster@gramster.com> writes:
[...]
| >C'est dommage.
|
| C'est peut-être pas le but, d'autant que ses lecteurs sont sensés déjà
| connaître les bases -- et donc avoir une bonne idée de ce qu'est
| "export".
Ce n'est pas évident. Tu viens de donner un contre-exemple ; et je ne
pense pas que tu sois un cas isolé :-)
| >Et l'implémentation de EDG, elle n'existe pas, c'est ça ?
|
| Bon, OK, j'ai oublié le "presque".
et combien de compilos sont basés sur le front-end EDG ? Sans
mentionner que EDG vend son front-end à d'autres entreprises et
instituts ?
| L'idée est que implémenter "export"
| dans Comeau semble avoir été un travail titanesque, et que tout le
Ah oui, c'était tellement titatnesque que cela a demandé un travail
d'une équipe de 3 personnes, qui pendant la même période a implémenté
un compilateur Java.
Je ne dis pas que c'était un travail facile, m'enfin bon, faudrait pas
pousser le bouchon non plus...
| monde ne semble pas d'accord sur l'utilité d'"export", donc la
| rentabilité d'un tel travail.
| >C'est dommage. | | C'est peut-être pas le but, d'autant que ses lecteurs sont sensés déjà | connaître les bases -- et donc avoir une bonne idée de ce qu'est | "export".
Ce n'est pas évident. Tu viens de donner un contre-exemple ; et je ne pense pas que tu sois un cas isolé :-)
| >Et l'implémentation de EDG, elle n'existe pas, c'est ça ? | | Bon, OK, j'ai oublié le "presque".
et combien de compilos sont basés sur le front-end EDG ? Sans mentionner que EDG vend son front-end à d'autres entreprises et instituts ?
| L'idée est que implémenter "export" | dans Comeau semble avoir été un travail titanesque, et que tout le
Ah oui, c'était tellement titatnesque que cela a demandé un travail d'une équipe de 3 personnes, qui pendant la même période a implémenté un compilateur Java. Je ne dis pas que c'était un travail facile, m'enfin bon, faudrait pas pousser le bouchon non plus...
| monde ne semble pas d'accord sur l'utilité d'"export", donc la | rentabilité d'un tel travail.
As-tu lu les écrits de David Vandevoorde ?
-- Gaby
Gabriel Dos Reis
Matthieu Moy writes:
| Fabien LE LEZ writes: | | > Pas dans l'immédiat, en tout cas. | > Surtout après avoir lu les réponses à | > <news:. | > Il est possible qu'à moyen terme je l'utilise, comme il est possible | > que d'autres compilos finissent par l'implémenter. | | Sauf erreur de ma part, le compilateur Intel utilise aussi EDG.
C'est exact. Et ils ont exprès désactivé « export ». Va savoir pourquoi.
| Fabien LE LEZ <gramster@gramster.com> writes:
|
| > Pas dans l'immédiat, en tout cas.
| > Surtout après avoir lu les réponses à
| > <news:8batm0d2tbu4faj212k0219earrkm7v4g4@4ax.com>.
| > Il est possible qu'à moyen terme je l'utilise, comme il est possible
| > que d'autres compilos finissent par l'implémenter.
|
| Sauf erreur de ma part, le compilateur Intel utilise aussi EDG.
C'est exact. Et ils ont exprès désactivé « export ». Va savoir pourquoi.
| Fabien LE LEZ writes: | | > Pas dans l'immédiat, en tout cas. | > Surtout après avoir lu les réponses à | > <news:. | > Il est possible qu'à moyen terme je l'utilise, comme il est possible | > que d'autres compilos finissent par l'implémenter. | | Sauf erreur de ma part, le compilateur Intel utilise aussi EDG.
C'est exact. Et ils ont exprès désactivé « export ». Va savoir pourquoi.
-- Gaby
Gabriel Dos Reis
Jean-Marc Bourguet writes:
| Gabriel Dos Reis writes: | | > Fabien LE LEZ writes: | > | > | On Wed, 27 Oct 2004 18:27:15 +0200, drkm : | > | | > | > Unfortunately, I do not know of any good and safe use for | > | > std::uncaught_exception. My advice: Don't use it. | > | | > | En lisant Herb Sutter, on s'aperçoit qu'un sacré paquet de | > | fonctionnalités de C++ sont inutiles[*] ;-) | > | | > | [*] à commencer par "export", même s'il est moins catégorique sur cet | > | exemple. | > | > Je regrette que le dernier XC++ soit encore aussi anti-export. :-( | | Je ne l'ai pas lu. Mais bon, si on n'utilise pas le bon | mécanisme d'instantiation, export n'a que des avantages de | "propreté" et c'est vrai que dans ces conditions on peut | douter de son intérêt.
Mais de là à conseiller « avoid export » ?
| <mode=Parthe> | C'est quoi le mécanisme d'instantiation utilisé par Microsoft? | </mode=Parthe>
Je ne sais pas.
-- Gaby
Jean-Marc Bourguet <jm@bourguet.org> writes:
| Gabriel Dos Reis <gdr@cs.tamu.edu> writes:
|
| > Fabien LE LEZ <gramster@gramster.com> writes:
| >
| > | On Wed, 27 Oct 2004 18:27:15 +0200, drkm <usenet.fclcxx@fgeorges.org>:
| > |
| > | > Unfortunately, I do not know of any good and safe use for
| > | > std::uncaught_exception. My advice: Don't use it.
| > |
| > | En lisant Herb Sutter, on s'aperçoit qu'un sacré paquet de
| > | fonctionnalités de C++ sont inutiles[*] ;-)
| > |
| > | [*] à commencer par "export", même s'il est moins catégorique sur cet
| > | exemple.
| >
| > Je regrette que le dernier XC++ soit encore aussi anti-export. :-(
|
| Je ne l'ai pas lu. Mais bon, si on n'utilise pas le bon
| mécanisme d'instantiation, export n'a que des avantages de
| "propreté" et c'est vrai que dans ces conditions on peut
| douter de son intérêt.
Mais de là à conseiller « avoid export » ?
| <mode=Parthe>
| C'est quoi le mécanisme d'instantiation utilisé par Microsoft?
| </mode=Parthe>
| Gabriel Dos Reis writes: | | > Fabien LE LEZ writes: | > | > | On Wed, 27 Oct 2004 18:27:15 +0200, drkm : | > | | > | > Unfortunately, I do not know of any good and safe use for | > | > std::uncaught_exception. My advice: Don't use it. | > | | > | En lisant Herb Sutter, on s'aperçoit qu'un sacré paquet de | > | fonctionnalités de C++ sont inutiles[*] ;-) | > | | > | [*] à commencer par "export", même s'il est moins catégorique sur cet | > | exemple. | > | > Je regrette que le dernier XC++ soit encore aussi anti-export. :-( | | Je ne l'ai pas lu. Mais bon, si on n'utilise pas le bon | mécanisme d'instantiation, export n'a que des avantages de | "propreté" et c'est vrai que dans ces conditions on peut | douter de son intérêt.
Mais de là à conseiller « avoid export » ?
| <mode=Parthe> | C'est quoi le mécanisme d'instantiation utilisé par Microsoft? | </mode=Parthe>
Je ne sais pas.
-- Gaby
Jean-Marc Bourguet
Gabriel Dos Reis writes:
| Je ne l'ai pas lu. Mais bon, si on n'utilise pas le bon | mécanisme d'instantiation, export n'a que des avantages | de "propreté" et c'est vrai que dans ces conditions on | peut douter de son intérêt.
Mais de là à conseiller « avoid export » ?
Non.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Gabriel Dos Reis <gdr@cs.tamu.edu> writes:
| Je ne l'ai pas lu. Mais bon, si on n'utilise pas le bon
| mécanisme d'instantiation, export n'a que des avantages
| de "propreté" et c'est vrai que dans ces conditions on
| peut douter de son intérêt.
Mais de là à conseiller « avoid export » ?
Non.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
| Je ne l'ai pas lu. Mais bon, si on n'utilise pas le bon | mécanisme d'instantiation, export n'a que des avantages | de "propreté" et c'est vrai que dans ces conditions on | peut douter de son intérêt.
Mais de là à conseiller « avoid export » ?
Non.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Michel Michaud
Dans le message ,
Jean-Marc Bourguet wrote in message news:...
Je viens de verifier, le code que nous livrons n'est pas compile avec -DNDEBUG et il me semblait que c'etait une pratique courante.
Ça a été la pratique courante partout où j'ai travaillé, en tout cas.
Il me semble qu'il faut alors en avertir les programmeurs qui auraient bien pu mettre des assert pour eux, qui demandent beaucoup de temps de calcul, etc., en pensant qu'ils seraient désactivés avant la livraison. En fait, il me semble même que c'est à quoi devrait servir assert :-) sinon pourquoi toute cette histoire de NDEBUG ?
Si on veut laisser des tests dans un programme livré, il me semble que c'est un détournement que d'utiliser assert. D'autres genres de test, avec surtout un meilleur mécanisme de rapport d'erreurs, sera une une meilleur idée.
D'ailleurs tu indiques dans d'autres messages que tu utilises un assert modifié ou différent de celui normalement fourni... Si ce n'est pas (std::)assert, ne pas l'appeler assert !
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans le message d6652001.0410272353.cb404b6@posting.google.com,
Jean-Marc Bourguet <jm@bourguet.org> wrote in message
news:<pxbmzy8i7qw.fsf@news.bourguet.org>...
Je viens de verifier, le code que nous livrons n'est pas compile
avec -DNDEBUG et il me semblait que c'etait une pratique courante.
Ça a été la pratique courante partout où j'ai travaillé, en tout
cas.
Il me semble qu'il faut alors en avertir les programmeurs qui auraient
bien pu mettre des assert pour eux, qui demandent beaucoup de temps
de calcul, etc., en pensant qu'ils seraient désactivés avant la
livraison. En fait, il me semble même que c'est à quoi devrait
servir assert :-) sinon pourquoi toute cette histoire de NDEBUG ?
Si on veut laisser des tests dans un programme livré, il me semble que
c'est un détournement que d'utiliser assert. D'autres genres de test,
avec surtout un meilleur mécanisme de rapport d'erreurs, sera une
une meilleur idée.
D'ailleurs tu indiques dans d'autres messages que tu utilises un
assert modifié ou différent de celui normalement fourni... Si ce
n'est pas (std::)assert, ne pas l'appeler assert !
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Je viens de verifier, le code que nous livrons n'est pas compile avec -DNDEBUG et il me semblait que c'etait une pratique courante.
Ça a été la pratique courante partout où j'ai travaillé, en tout cas.
Il me semble qu'il faut alors en avertir les programmeurs qui auraient bien pu mettre des assert pour eux, qui demandent beaucoup de temps de calcul, etc., en pensant qu'ils seraient désactivés avant la livraison. En fait, il me semble même que c'est à quoi devrait servir assert :-) sinon pourquoi toute cette histoire de NDEBUG ?
Si on veut laisser des tests dans un programme livré, il me semble que c'est un détournement que d'utiliser assert. D'autres genres de test, avec surtout un meilleur mécanisme de rapport d'erreurs, sera une une meilleur idée.
D'ailleurs tu indiques dans d'autres messages que tu utilises un assert modifié ou différent de celui normalement fourni... Si ce n'est pas (std::)assert, ne pas l'appeler assert !
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/