Comment dupliquer correctement un objet donné son shared_ptr

Je suis en train de faire une copie d'un objet d'une classe personnalisée Event. Je partage un pointeur vers l'objet que j'ai obtenu à partir de sa répartition:

std::shared_ptr<Event> e = std::make_shared<Event>();

Afin d'obtenir un véritable double de e (et pas seulement une copie du pointeur) j'ai essayé:

std::shared_ptr<Event> o = std::make_shared<Event>(*e);

Mais je ne sais pas si c'est la bonne manière, il semble que si je supprime e elle supprime également les o...

Btw, je n'ai pas défini un constructeur de copie Event::Event(const Event &orig) mais à mon sens ce n'est pas nécessaire que le compilateur fournit un défaut constructeur de copie. L'événement de la classe ne contient que des variables et pas d'autres pointeurs.

source d'informationauteur Marc