Citation :
auto_ptr libere la memoire des que l'on sort du "scope"
|
C'est le principe du RAII. C'est beau, c'est fiable, c'est propre.
Citation :
A un moment je pensais qu'il y avait un compteur de references et donc que ca s'utilisait comme les references en Java.
[...]
Je ne vois presque aucun interet en fait, je comprends pourquoi personne n'utilise ca.
|
auto_ptr ne fait pas du comptage de référence (shared_ptr oui), mais possède une sémantique de déplacement. Ca peut induire en erreur, mais dans les cas où ça convient, c'est sans surcoût (car le compteur faut le stocker quelque part...), et donc pas si mal. Il a donc son utilité.
Car écrire du code qui ne leak pas est beaucoup plus dur qu'il n'y parrait. Comme l'a dit Taz, ton code n'est pas exception safe. Pour qu'il le soit:
Code :
- A * a = new A;
- try
- {
- // ...
- }
- catch ( ... )
- {
- delete a;
- throw;
- }
- delete a;
|
auto_ptr transfome tout celà en une seule ligne.
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite