我在python中有一系列函数
Func[0](x,y,z)
Func[1](x,y,z)
...
Func[N](x,y,z)
如何通过使用 boost-python 在 c++ 中访问 Func[0] 到 Func[N] 来加载 c++ 中的函数指针数组。
typedef double (*CPP_Function)(double, double, double);
CPP_Function* Funcs; // Array of Function pointers
我希望能够打电话
for(int i=0; i<N; i++)
a += (*CPP_Function[i])(0,0,0)
我尝试关注 2 个仿函数,但没有成功!
Py_Initialize();
bp::object main_module = bp::import("__main__");
bp::object main_dict = main_module.attr("__dict__");
bp::exec(
"def f1(x):\n"
" return sin(x)*cos(x)\n"
"def f2(x):\n"
" return sin(x)*cos(x)\n"
"f=[f1, f2]",
main_dict
);
bp::object f = main_dict["f"];
bp::object this_f = f[0];
std::cout << bp::extract<double>(this_f(1.0)) << std::endl;