Salut, j'essaye d'extraire le pointeur d'un std::unique_ptr et de le passer à une fonction template comme ceci :

Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
template <class T>
    void operator() (std::unique_ptr<T>& ptr) {
        (*this)(ptr.get());
    }

Afin d'éviter à avoir à réécrire deux fois le même code dans le cas ou je passe un pointeur nu et dans le cas ou je passe un std::unique_ptr.

Malheureusement, cela ne fonctionne pas et j'ai cette erreur en compilation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
/home/laurent/Développement/Projets-c++/ODFAEG/src/odfaeg/Physics/../../../include/odfaeg/Physics/../Math/../Core/archive.h|889|error: no match for call to ‘(odfaeg::ITextArchive) (std::unique_ptr<odfaeg::BoundingVolume>::pointer)’|
Comment puis je passer le pointer d'un pointeur intelligent à une fonction template ?

Merci d'avance pour votre aide.