mikrosimage/SequenceParser — comment on commit 80bc526a2c6951783bbc29010ebea39e8d759ffd
File: include/Detector.hpp line 21
By fabiencastan:

avantages:
* c'est plus lisible
* c'est plus proche de ce que l'on est entrain de faire, sémantiquement. Je veux dire par là que notre shared_ptr n'est partagé avec personne (or c'est le but d'un shared_ptr), c'est juste un moyen (on pourrait presque appeler ça hack...) de passer le pointer et de ne pas recopier tous les objets lors du return, etc. Or c'est exactement de que permettent les boost ptr_container. Quand on accède au contenu d'un ptr_container, on le manipule comme si il contenait des vrai objet (on reçoit des références).

Non, un ptr_list n'est pas une list de shared_ptr. Le contenu du ptr_list n'est partagé avec personne. Mais quand on return un objet ptr_container, on peut transférer le contenu pour qu'il n'y ait pas de recopie. Derrière ptr_list est implémenté comme une std::list, mais tout est bien géré pour interfacer ça et que cette liste contienne vraiment les objets Toto.