Bonjour,

j'ai des lacunes (entre autres) concernant les pointeurs intelligents. Je me demande ce que fait le code suivant, et en particulier s'il y a une fuite mémoire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
class Foo { /* */ };
 
std::unique_ptr<Foo> BuildFoo( /* params */ ) 
{ 
   return std::unique_ptr<Foo>( new Foo( /* params */ )  );
}
 
main()
{
   std::unique_ptr<Foo> p = BuildFoo( /* params */ );
   p = BuildFoo( /* params */ ); // <- problème ici
}
Mon interrogation porte sur la ligne 11 du code ci-dessus. Est-ce que l'objet pointé par p est correctement détruit puis reconstruit?