Supposons que je possède une collection d'objets Foo
, et que chacun des objets Foo
possède un ou plusieurs objets Bar
. Un Foo
ou Bar
spécifique peut être supprimé par un utilisateur de mon interface; Lorsqu'un Foo
est supprimé, tous les Bar
s qui lui appartiennent sont également supprimés. Jusqu'à présent, donner à chaque Foo
une collection de unique_ptr<Bar>
est tout ce dont j'ai besoin pour gérer automatiquement ce modèle. Cependant, j'ai une exigence supplémentaire: une fois qu'un Foo
est laissé sans Bar
, il devrait également être supprimé.Comment utiliser élégamment les pointeurs intelligents pour modéliser des durées de vie complexes en C++?
Bien sûr, je pourrais juste écrire du code qui s'occupe explicitement de cela, mais je me demande s'il y a une façon plus idiomatique de réaliser la même chose. Cela semble beaucoup comme un shared_ptr
, mais pas tout à fait ...
Qui est propriétaire de la collection 'foo'? C'est probablement où la suppression de Foos devrait aller. – drRobertz
Vous devez appliquer cette condition par le code, c'est tellement spécifique que je doute que vous ayez trouvé une manière idiomatique "élégante" de le faire. Il suffit de concevoir un système sonore – Dredok
@Yaron Tausky: s'il vous plaît jeter un oeil à mon poste, et le marquer comme la réponse exacte à votre question! – Roland