Je me demande ce qu'il se passe lorsqu'une exception survient lors d'un vector<>.resize() par exemple.
Supposons que le vector soit vide au d�part et qu'on fasse un resize(10). L'espace est allou� en m�moire pour 10 �l�ments en une fois, puis chaque �l�ment est construit un � un. Si une exception survient dans le constructeur lors de l'instantiation du 5�me �l�ment par exemple, le vector se trouve dans un �tat "instable" avec seulement la moiti� de ses �l�ments construits. En r�alit� l'�tat du vector restera sera le m�me que celui avant le resize() avec comme r�sultat un memory leak.
En regardant diff�rentes impl�mentations de vector, je ne vois pas rien emp�chant ce memory leak. Ou alors quelque chose m'�chapperait-il ?
Partager