Comment attribuer une adresse à un objet existant à un pointeur intelligent?

#include <memory>

class bar{};

void foo(bar &object){
    std::unique_ptr<bar> pointer = &object;
}

Je veux attribuer une adresse de l'objet à l'aide du pointeur. Le code ci-dessus évidemment l'habitude de compiler, parce que le côté droit de l'opérateur d'affectation doit être un std::unique_ptr. J'ai déjà essayé ceci:

pointer = std::make_unique<bar>(object)

Mais il génère de nombreuses erreurs lors de la compilation. Comment puis-je le faire?

Mise à jour
Comme dit dans les réponses à l'aide de la std::unique_ptr::reset méthode conduit à un comportement indéterminé. Maintenant, je sais que, dans ce cas, je devrais utiliser un pointeur.

source d'informationauteur Tomasz Kasperczyk