Подтвердить что ты не робот

Отображение указателя в Boost.Python

У меня есть этот очень простой класс С++:

class Tree {
    public:
        Node *head;
};
BOOST_PYTHON_MODULE(myModule)
{

   class_<Tree>("Tree")
        .def_readwrite("head",&Tree::head)
    ;

}

Я хочу получить доступ к главной переменной из Python, но сообщение, которое я вижу, это:

No to_python (by-value) converter found for C++ type: Node*

Из того, что я понимаю, это происходит потому, что Python волнуется, потому что у него нет понятия указателей. Как получить доступ к главной переменной из Python?

Я понимаю, что должен использовать инкапсуляцию, но в настоящее время я придерживаюсь необходимости решения без инкапсуляции.

4b9b3361

Ответ 1

Конечно, я нахожу ответ через десять минут после того, как задаю вопрос... вот как это делается:

class_<Tree>("Tree")
    .add_property("head",
     make_getter(&Tree::head, return_value_policy<reference_existing_object>()),
     make_setter(&Tree::head, return_value_policy<reference_existing_object>()))
;