Ich versuche SWIG eine C++ - Bibliothek zu Python SWIG. Eine der C++ Funktionen gibt einen shared_ptr zurück. Ich bin erfolgreich bei der Herstellung eines Python-Moduls, aber das von dieser Funktion an Python zurückgegebene Objekt scheint keine Mitglieder zu haben. Ist dies eine Einschränkung der Handhabung von shared_ptr durch SWIG oder mache ich etwas falsch? Dieseswig shared_ptr führt zu einem undurchsichtigen Objekt
ist in etwa die Struktur meines Code:
//foo.h
namespace MyNamespace
{
class Base {};
template <typename T> class Derived : public Base {};
std::shared_ptr<Base> make_obj();
}
SWIG:
//foo.i
%module foo
%include <std_shared_ptr.i>
%{
#define SWIG_FILE_WITH_INIT
#include "foo.h"
%}
%include "foo.h"
%template(FooA) MyNamespace::Derived<MyNamespace::AAA>;
%template(FooB) MyNamespace::Derived<MyNamespace::BBB>;
%shared_ptr(MyNamespace::Base)
%shared_ptr(FooA)
%shared_ptr(FooB)
Vielen Dank. Das war in der Tat das Problem. Die Inline-Kommentare sind ebenfalls korrekt. – BlindDriver