Boost.Python: как выставить std :: unique_ptr

Я довольно новичок в boost.python и пытаюсь представить возвращаемое значение функции для python.

Сигнатура функции выглядит так:

 std::unique_ptr<Message> someFunc(const std::string &str) const;

При вызове функции в python я получаю следующую ошибку:

TypeError: No to_python (by-value) converter found for C++ type: std::unique_ptr<Message, std::default_delete<Message> >

Мой вызов функции в Python выглядит так:

a = mymodule.MyClass()
a.someFunc("some string here") # error here

Я пытался выставить std :: unique_ptr, но просто не могу заставить его работать .. Кто-нибудь знает, как правильно выставить класс указателя? Спасибо!

Редактировать: Я попробовал следующее:

class_<std::unique_ptr<Message, std::default_delete<Message>>, bost::noncopyable ("Message", init<>())

;

Этот пример компилируется, но я все еще получаю ошибку, упомянутую выше. Также я попытался выставить классMessage сам

class_<Message>("Message", init<unsigned>())

        .def(init<unsigned, unsigned>()) 
        .def("f", &Message::f)
;

Ответы на вопрос(4)

Ваш ответ на вопрос