我有一个 C++ 类,它有一个指向对象的唯一指针作为属性。我希望能够在 Python 中访问该属性,以便我可以调用它的类方法。这是我的设置示例:
\nclass OuterClass {\npublic:\n std::unique_ptr<InnerClass> obj;\n}\n\nclass InnerClass {\npublic:\n void method();\n}\nRun Code Online (Sandbox Code Playgroud)\n以及 pybind11 绑定:
\nPYBIND11_MODULE(example, m) {\n py::class_<InnerClass>(m, "InnerClass")\n .def("method", &InnerClass::method);\n\n py::class_<OuterClass>(m, "OuterClass")\n .def_readonly("obj", &OuterClass::obj);\n}\nRun Code Online (Sandbox Code Playgroud)\n但是,这无法编译并出现错误 error: no matching function for call to \xe2\x80\x98pybind11::cpp_function::cpp_function(std::unique_ptr<InnerClass> OuterClass::*, pybind11::name, pybind11::is_method, pybind11::sibling)
我希望能够在 python 中做到这一点:
\nouter_obj.obj.method()\nRun Code Online (Sandbox Code Playgroud)\nunique ptr 的文档似乎并不认为这应该是一个问题,因为它们给出了返回唯一 ptr 的函数的示例。尝试访问唯一的 ptr 属性是否有问题?我该如何解决这个问题?
\n