如何使用Boost.Python公開以下類?Boost.Python靜態方法重載
class C {
public:
static void F(int) {}
static void F(double) {}
};
我想是這樣的:
bp::class_<C>("C")
.def("F", (void (C::*)(int))&C::F).staticmethod("F")
.def("F", (void (C::*)(double))&C::F).staticmethod("F")
;
但是,它提出了一個Python異常(SystemError: initialization of libdistributions raised unreported exception
)。如果我從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")
;
請郵寄正被拋出的異常。 – 2012-01-03 16:51:08
@ChristianJonassen:編輯。 – 2012-01-03 16:53:30