Que l'appel à g() génère une exception ou non, "is_running" passe à "true" dans la première ligne de f(), et repasse à "false" quand on sort de f(), que ce soit par une sortie normale ou par une exception.
-- schtroumpf schtroumpf
On Sat, 26 Jun 2004 18:06:24 +0100, Michael Moreno
<michael.Enlever.ce.Bout.Moreno@free.fr>:
Dans ce cas, pour respecter la norme, comment faîtes-vous pour éviter
une duplication du code ?
Que l'appel à g() génère une exception ou non, "is_running" passe à
"true" dans la première ligne de f(), et repasse à "false" quand on
sort de f(), que ce soit par une sortie normale ou par une exception.
Que l'appel à g() génère une exception ou non, "is_running" passe à "true" dans la première ligne de f(), et repasse à "false" quand on sort de f(), que ce soit par une sortie normale ou par une exception.
-- schtroumpf schtroumpf
Fabien LE LEZ
On Sat, 26 Jun 2004 18:06:24 +0100, Michael Moreno :
Dans ce cas, pour respecter la norme, comment faîtes-vous pour éviter une duplication du code ?
Que l'appel à g() génère une exception ou non, "is_running" passe à "true" dans la première ligne de f(), et repasse à "false" quand on sort de f(), que ce soit par une sortie normale ou par une exception.
-- schtroumpf schtroumpf
On Sat, 26 Jun 2004 18:06:24 +0100, Michael Moreno
<michael.Enlever.ce.Bout.Moreno@free.fr>:
Dans ce cas, pour respecter la norme, comment faîtes-vous pour éviter
une duplication du code ?
Que l'appel à g() génère une exception ou non, "is_running" passe à
"true" dans la première ligne de f(), et repasse à "false" quand on
sort de f(), que ce soit par une sortie normale ou par une exception.
Que l'appel à g() génère une exception ou non, "is_running" passe à "true" dans la première ligne de f(), et repasse à "false" quand on sort de f(), que ce soit par une sortie normale ou par une exception.
-- schtroumpf schtroumpf
Michael Moreno
Merci bien je n'aurai jamais pensé à cette solution !
-- Drakkhen
http://michael.moreno.free.fr/
Merci bien je n'aurai jamais pensé à cette solution !
Pour compléter les autres réponses, cet article d'Andrei Alexandrescu est des plus intéressants. http://www.cuj.com/documents/s00/cujcexp1812alexandr/alexandr.htm
-- Luc Hermitte <hermitte at free.fr> FAQ de <news:fr.comp.lang.c++> : <http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/> Dejanews : <http://groups.google.com/advanced_group_search>
Bonsoir,
Michael Moreno <michael.Enlever.ce.Bout.Moreno@free.fr> wrote in
news:mn.d43e7d46f5f06011.10274@free.fr:
Il y a-t-il en C++ un "try... finally".
Pour compléter les autres réponses, cet article d'Andrei Alexandrescu est
des plus intéressants.
http://www.cuj.com/documents/s00/cujcexp1812alexandr/alexandr.htm
--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>
Pour compléter les autres réponses, cet article d'Andrei Alexandrescu est des plus intéressants. http://www.cuj.com/documents/s00/cujcexp1812alexandr/alexandr.htm
-- Luc Hermitte <hermitte at free.fr> FAQ de <news:fr.comp.lang.c++> : <http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/> Dejanews : <http://groups.google.com/advanced_group_search>
Arnaud Debaene
Michael Moreno wrote:
Merci bien je n'aurai jamais pensé à cette solution !
Et pou une solution générique pour ce genre de choses, voire ScopeGuard par exemple (http://www.cuj.com/documents/s00/cujcexp1812alexandr/alexandr.htm)
Arnaud
Michael Moreno wrote:
Merci bien je n'aurai jamais pensé à cette solution !
Et pou une solution générique pour ce genre de choses, voire ScopeGuard par
exemple
(http://www.cuj.com/documents/s00/cujcexp1812alexandr/alexandr.htm)
Merci bien je n'aurai jamais pensé à cette solution !
Et pou une solution générique pour ce genre de choses, voire ScopeGuard par exemple (http://www.cuj.com/documents/s00/cujcexp1812alexandr/alexandr.htm)
Arnaud
James Kanze
Michael Moreno writes:
|> Il y a-t-il en C++ un "try... finally".
Non.
|> Apparemment non. Ou plutôt pas dans la norme.
Il n'y en a pas. Il n'y en a pas comme extension dans les compilateurs que je connais non plus.
En général, je crois qu'on n'en ressent pas le besoin.
|> Dans ce cas, pour respecter la norme, comment faîtes-vous pour |> éviter une duplication du code ?
À une certaine époque, j'avais pensé à l'idée de faire une classe implicite (__local_context ?) avec la contexte du bloc, et avec, potentiellement, des mots clés supplémentaires pour l'utiliser. Parmi d'autre, un « cleanup », qui aurait permit d'écrire :
Ça aurait généré une classe implicite avec accès à la contexte locale, et avec le code en {...} comme destructeur.
Il n'y avait pas beaucoup d'intérêt, alors je l'ai laissé tomber.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Michael Moreno <michael.Enlever.ce.Bout.Moreno@free.fr> writes:
|> Il y a-t-il en C++ un "try... finally".
Non.
|> Apparemment non. Ou plutôt pas dans la norme.
Il n'y en a pas. Il n'y en a pas comme extension dans les compilateurs
que je connais non plus.
En général, je crois qu'on n'en ressent pas le besoin.
|> Dans ce cas, pour respecter la norme, comment faîtes-vous pour
|> éviter une duplication du code ?
À une certaine époque, j'avais pensé à l'idée de faire une classe
implicite (__local_context ?) avec la contexte du bloc, et avec,
potentiellement, des mots clés supplémentaires pour l'utiliser. Parmi
d'autre, un « cleanup », qui aurait permit d'écrire :
Ça aurait généré une classe implicite avec accès à la contexte locale,
et avec le code en {...} comme destructeur.
Il n'y avait pas beaucoup d'intérêt, alors je l'ai laissé tomber.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
À une certaine époque, j'avais pensé à l'idée de faire une classe implicite (__local_context ?) avec la contexte du bloc, et avec, potentiellement, des mots clés supplémentaires pour l'utiliser. Parmi d'autre, un « cleanup », qui aurait permit d'écrire :
Ça aurait généré une classe implicite avec accès à la contexte locale, et avec le code en {...} comme destructeur.
Il n'y avait pas beaucoup d'intérêt, alors je l'ai laissé tomber.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34