私は現在、次のものを持っています:
namespace py=boost::python;
//C++
void f() {
std::cout << "hello world\n";
}
//I am not precious about this, if it can be done without a module that would be great
BOOST_PYTHON_MODULE(test)
{
py::def("f", f);
}
int main() {
auto main_module =py::import("__main__");
auto main_namespace =main_module.attr("__dict__");
//???????
auto result=py::exec_file("t.py", main_namespace);
}
//t.py
f()
f を呼び出そうとしていますが、それを機能させるために必要な接着剤がわかりません。私ができる授業で
int main() {
//...
py::obejct p_my_type=py::class_<my_type>("my_type").def("f", &my_type::f);
main_namespace["my_type"]=p_my_type;
//...
ただしboost::python::def
、like dos を返すboost::python::object
ようには見えclass_
ません
私の質問は、最初のテスト ケースを期待どおりに動作させるにはどうすればよいかということです。次に、2 番目のコード スニペットで自分の型を公開する方法は「正しい」ですか?