私はPythonで関数の配列を持っています
Func[0](x,y,z)
Func[1](x,y,z)
...
Func[N](x,y,z)
boost-python を使用して 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;