Bonjour tout le monde !

J'utilise Boost.Python pour wrapper une bibliotheque C++. Pour l'exemple, la classe est triviale :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
// Classe.h
class Classe
{
    public:
        Classe();
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
// Classe.cpp
Classe::Classe()
{
}
Pour wrapper cette classe, la section Boost.Python est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
...
class_< Classe >( "Classe" )
;
 
register_ptr_to_python< boost::shared_ptr<Classe> >();
...
Je voudrais pouvoir utiliser des shared_ptr<const Classe>, mais je ne peux pas le faire via register_ptr_to_python< boost::shared_ptr<const Classe> >(); sous peine d'erreur de compilation : une conversion malheureuse est tentee dans pointer_holder.hpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
...
.../pointer_holder.hpp:138: error: invalid conversion from `const void*'
to `void*'
...
Est-ce que vous savez comment utiliser des shared_ptr<const T> dans Boost.Python ?

Merci beaucoup !