python嵌入到C ++中,函数返回shared_ptr(pybind11 / boost_python)

时间:2018-08-15 22:54:53

标签: python c++11 boost-python python-c-api pybind11

我目前正在研究一个用python实现API的用例,它们需要返回struct,vector并映射到C ++调用者函数。您能帮我举例说明如何做到这一点。我在pybind / boost python中看到的所有用例只是将python嵌入C ++中而没有任何返回值。 我也碰到了您的博客,它很好地解释了这两个库。但是由于这个用例,我无法继续。 我需要实现的场景是python-> C ++接口,其中C ++调用程序将启动一个会话并在需要时调用各种python对象,然后关闭该会话。我对boost :: python或pybind11

中的解决方案都很好

1 个答案:

答案 0 :(得分:0)

“我在pybind / boost python中看到的所有用例只是将python嵌入C ++中而没有任何返回值。”

PyBind11 Example with return value

该示例称为python函数,返回一个int,它们首先将其分配给py :: object,然后将其强制转换为int。对于诸如std :: map,std :: vector之类的STL容器,如果您#include <pybind11/stl.h>,则会自动进行转换。我不确定要转换为struct,但是我会使用PyBind内置的Python和C ++之间的STL转换之一,然后在C ++端构造该结构。