Ce code crash lors de la destruction de p0. On ne peut pas créer un tableau et l'assigner à shared_ptr ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part boost::shared_ptr<UneClasse> p0(new UneClasse[5]);
Merci.
Ce code crash lors de la destruction de p0. On ne peut pas créer un tableau et l'assigner à shared_ptr ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part boost::shared_ptr<UneClasse> p0(new UneClasse[5]);
Merci.
Jeter un oeil à shared_array.
Oui, shared_ptr ne supporte pas les tableaux.
Par contre, bizarrement, le futur unique_ptr du C++0x les supportera.
Le code suivant est bon avec gcc et son mode C++0x expérimental.
Ce qui n'est pas le cas des shared_ptr.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 unique_ptr<int[]> arr(new int[3]); arr[0]=1; arr[1]=2; arr[2]=3;
Curieux...
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::shared_ptr<int[]> shared_array(new int[3]); // erreur à la compilation![]()
Merci.
Et existe-t-il un équivalent à "make_shared" pour les "shared_array" ?
Tu peux utiliser shared_ptr en précisant un deleter qui utilise delete[] à la place de delete.
Pas forcément, puisque tu conserves le type shared_ptr et que tu peux l'utiliser avec make_shared.
Partager