Il me semble qu'en C++, le try-finally n'existe pas.
Je me demande par consequent quelle est la facon pour eviter la repetition de code du genre
EnterCriticalSection(...);
{ Lock l(); try { ... } catch { ... } }
Avec Lock un objet dont le constructeur fait EnterCriticalSection et un destructeur qui fait LeaveCriticalSection
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Michael Moreno
Avec Lock un objet dont le constructeur fait EnterCriticalSection et un destructeur qui fait LeaveCriticalSection
Merci, je cherchais a faire cela avec un objet mais je ne suis pas convaincu que ce soit vraiment genial car on j'aurai souvent besoin de parametres/pointeur et cela me conduirait a creer plein d'objets differents.
-- ---- http://michael.moreno.free.fr/
Avec Lock un objet dont le constructeur fait
EnterCriticalSection
et un destructeur qui fait
LeaveCriticalSection
Merci, je cherchais a faire cela avec un objet mais je ne suis pas
convaincu que ce soit vraiment genial car on j'aurai souvent besoin de
parametres/pointeur et cela me conduirait a creer plein d'objets
differents.
Avec Lock un objet dont le constructeur fait EnterCriticalSection et un destructeur qui fait LeaveCriticalSection
Merci, je cherchais a faire cela avec un objet mais je ne suis pas convaincu que ce soit vraiment genial car on j'aurai souvent besoin de parametres/pointeur et cela me conduirait a creer plein d'objets differents.
-- ---- http://michael.moreno.free.fr/
Marc Boyer
In article , Michael Moreno wrote:
Avec Lock un objet dont le constructeur fait EnterCriticalSection et un destructeur qui fait LeaveCriticalSection
Merci, je cherchais a faire cela avec un objet mais je ne suis pas convaincu que ce soit vraiment genial car on j'aurai souvent besoin de parametres/pointeur et cela me conduirait a creer plein d'objets differents.
Je ne te suis pas. En fait, tu peux passer au constructeur de ton objet tous les paramètres que tu passais à "EnterCriticalSection". Non ?
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
In article <mn.72c27d4ca0492eda.21643@free.fr>, Michael Moreno wrote:
Avec Lock un objet dont le constructeur fait
EnterCriticalSection
et un destructeur qui fait
LeaveCriticalSection
Merci, je cherchais a faire cela avec un objet mais je ne suis pas
convaincu que ce soit vraiment genial car on j'aurai souvent besoin de
parametres/pointeur et cela me conduirait a creer plein d'objets
differents.
Je ne te suis pas.
En fait, tu peux passer au constructeur de ton objet tous les
paramètres que tu passais à "EnterCriticalSection". Non ?
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
Avec Lock un objet dont le constructeur fait EnterCriticalSection et un destructeur qui fait LeaveCriticalSection
Merci, je cherchais a faire cela avec un objet mais je ne suis pas convaincu que ce soit vraiment genial car on j'aurai souvent besoin de parametres/pointeur et cela me conduirait a creer plein d'objets differents.
Je ne te suis pas. En fait, tu peux passer au constructeur de ton objet tous les paramètres que tu passais à "EnterCriticalSection". Non ?
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Michael Moreno
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
-- ---- http://michael.moreno.free.fr/
Oui, mais parfois je veux utiliser plusieurs couples :
1 - EnterCriticalSection et LeaveCriticalSection
2 - SafeArrayAccessData et SafeArrayUnaccessData
3 - new et delete
etc
Cela va me conduire a creer de nombreux objets specialises, non ?
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
-- ---- http://michael.moreno.free.fr/
Christophe Lephay
"Michael Moreno" a écrit dans le message de news:
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
C'est un peu (voire completement ?) le principe de l'idiome RAII. Le finally est exécuté par les destructeurs de tes objets...
Chris
"Michael Moreno" <michael.ToRemove.moreno@free.fr> a écrit dans le message
de news: mn.72cc7d4cace41d70.21643@free.fr...
Oui, mais parfois je veux utiliser plusieurs couples :
1 - EnterCriticalSection et LeaveCriticalSection
2 - SafeArrayAccessData et SafeArrayUnaccessData
3 - new et delete
etc
Cela va me conduire a creer de nombreux objets specialises, non ?
C'est un peu (voire completement ?) le principe de l'idiome RAII. Le finally
est exécuté par les destructeurs de tes objets...
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
C'est un peu (voire completement ?) le principe de l'idiome RAII. Le finally est exécuté par les destructeurs de tes objets...
Chris
Marc Boyer
Michael Moreno wrote:
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
Je ne vois pas en quoi ce sera pire que de le faire à la main dans le code à chaque fois. En plus, un rien de template peut pas mal factoriser le code.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Michael Moreno wrote:
Oui, mais parfois je veux utiliser plusieurs couples :
1 - EnterCriticalSection et LeaveCriticalSection
2 - SafeArrayAccessData et SafeArrayUnaccessData
3 - new et delete
etc
Cela va me conduire a creer de nombreux objets specialises, non ?
Je ne vois pas en quoi ce sera pire que de le faire à la main
dans le code à chaque fois.
En plus, un rien de template peut pas mal factoriser le
code.
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
Je ne vois pas en quoi ce sera pire que de le faire à la main dans le code à chaque fois. En plus, un rien de template peut pas mal factoriser le code.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Fabien LE LEZ
On Tue, 14 Dec 2004 11:24:42 GMT, Michael Moreno :
Je me demande par consequent quelle est la facon pour eviter la repetition de code du genre
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
Ce sont de petits objets qui s'écrivent en 3 lignes. Notes au passage que pour new/delete, le wrapper existe déjà : c'est boost::scoped_ptr (ou std::aut_ptr si tu n'as pas peur...)
Ceci dit, si tu veux une version générique, regardes du côté de ScopeGuard (http://www.cuj.com/documents/s00/cujcexp1812alexandr/). Dans ton cas, la fonctionnalité "Dismiss" ne t'intéresse pas.
Arnaud
Michael Moreno wrote:
Oui, mais parfois je veux utiliser plusieurs couples :
1 - EnterCriticalSection et LeaveCriticalSection
2 - SafeArrayAccessData et SafeArrayUnaccessData
3 - new et delete
etc
Cela va me conduire a creer de nombreux objets specialises, non ?
Ce sont de petits objets qui s'écrivent en 3 lignes. Notes au passage que
pour new/delete, le wrapper existe déjà : c'est boost::scoped_ptr (ou
std::aut_ptr si tu n'as pas peur...)
Ceci dit, si tu veux une version générique, regardes du côté de ScopeGuard
(http://www.cuj.com/documents/s00/cujcexp1812alexandr/). Dans ton cas, la
fonctionnalité "Dismiss" ne t'intéresse pas.
Oui, mais parfois je veux utiliser plusieurs couples : 1 - EnterCriticalSection et LeaveCriticalSection 2 - SafeArrayAccessData et SafeArrayUnaccessData 3 - new et delete etc
Cela va me conduire a creer de nombreux objets specialises, non ?
Ce sont de petits objets qui s'écrivent en 3 lignes. Notes au passage que pour new/delete, le wrapper existe déjà : c'est boost::scoped_ptr (ou std::aut_ptr si tu n'as pas peur...)
Ceci dit, si tu veux une version générique, regardes du côté de ScopeGuard (http://www.cuj.com/documents/s00/cujcexp1812alexandr/). Dans ton cas, la fonctionnalité "Dismiss" ne t'intéresse pas.