Boost.Python을 사용하여 다음 클래스를 노출하려면 어떻게해야합니까? 이 파이썬에서 예외 (SystemError: initialization of libdistributions raised unreported exception
를) 제기,Boost.Python 정적 메소드 오버로드
bp::class_<C>("C")
.def("F", (void (C::*)(int))&C::F).staticmethod("F")
.def("F", (void (C::*)(double))&C::F).staticmethod("F")
;
그러나 :
class C {
public:
static void F(int) {}
static void F(double) {}
};
나는 이런 식으로 뭔가를 시도했다.
bp::class_
에서 과부하 중 하나를 제거하면 모든 것이 정상적으로 작동합니다. 나는 Boost.Python이 자동으로 과부하 된 생성자를 다룰 수 있다는 것을 알고 있습니다. 그래서 정적 메서드에 대해 그런 것이 있는지 궁금합니다.
대답
bp::class_<C>("C")
.def("F", (void (C::*)(int))&C::F) // Note missing staticmethod call!
.def("F", (void (C::*)(double))&C::F).staticmethod("F")
;
제기되고있는 예외를 게시하시기 바랍니다. –
@ChristianJonassen : 편집 됨. –