1
定義我的功能在Python陣列功能的陣列使用boost的Python在C++中,以獲得在Python
Func[0](x,y,z)
Func[1](x,y,z)
...
Func[N](x,y,z)
如何我可以通過使用升壓蟒蛇獲取負載在C函數指針++的數組在C++中訪問Func [0]到Func [N]。
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;
非常感謝,很好的回答! – Hesam