Boost.Python: como expor std :: unique_ptr

Eu sou relativamente novo em boost.python e tentando expor o valor de retorno de uma função para python.

A assinatura da função é assim:

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

Ao chamar a função em python, recebo o seguinte erro:

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

Minha chamada de função em python se parece com isso:

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

Eu tentei expor o std :: unique_ptr, mas apenas não consigo fazê-lo funcionar .. Alguém sabe como expor corretamente a classe de ponteiro? Obrigado!

Editar: Eu tentei o seguinte:

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

;

Este exemplo compila, mas ainda recebo o erro mencionado acima. Além disso, tentei expor a turmaMessage em si

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

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

questionAnswers(4)

yourAnswerToTheQuestion