Dear list, how should I export functions to python which return smart pointers to const-pointers, e.g. shared_ptr<const T>?
For my own classes I always tried to avoid this problem by always providing a methods which returns shared_ptr<T>. Now I need to export the following method in a class provided by some other software package (Trilinos). Its implementation I do not want to change, the function is declared as Teuchos::RCP< const Teuchos::Comm< int > > getComm () const (if you need details: http://trilinos.sandia.gov/packages/docs/r10.6/packages/tpetra/doc/html/classTpetra_1_1MpiPlatform.html ) I believe I already exported the custom smart pointer `Teuchos::RCP` to python, I also exported the class `Teuchos::Comm< int >` to python, but I get the error No to_python (by-value) converter found for C++ type: Teuchos::RCP<Teuchos::Comm<int> const> which is perfectly true, as I did not export the class `const Teuchos::Comm<int>`. I briefly tried to export also the const version of this class (all methods that I need are provided are available for the const version), but I failed exporting the class with varying error message, depending on how I tried to export it. I realized that I don't know how or even if I should export a const version of a type? Is there another workaround to this problem? Is there something I'm missing in the implementation of my custom smart pointer? I could wrap the function getComm() above to cast away the const'ness, but do I need to? I also found some old messages on the list titled "[Boost.Python] shared_ptr<const T>" with some workaround proposed by providing get_pointer for const T, but I believe that I have a different problem that I can not solve by modifying get_pointer. -Holger _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig