2013-11-14 2 views
3

나는 현재 다음과 같습니다부스트 파이썬은 파이썬에서의 C++ 함수를 호출 포함 된 경우

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

내 질문은 않는 boost::python::objectclass_처럼 돌아 나타나지 않습니다 할 수 있습니까? 두 번째 코드 스 니펫에서 "유형"이 정확하게 표시되는 방법은 무엇입니까?

답변