2009年10月28日水曜日

Boost Python VC++

cmakeでboost pythonを使うとき、
find_package( Boost COMPONENTS python ... )
とやるとVC++ではリンクできないとわめく。
set(Boost_USE_STATIC_LIBS   OFF)
add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINTIIONS})
としておくとやめる。
 
しかし、開発中のものでVC++ではエラーが出ないがgcc on UbuntuでコンパイルしたBoost Pythonが動かない。
Python argument types in .... did not match C++ signature: .... と出やがる。 
 
追記:pythonをリンクさせることを忘れていました。トホホ 

2009年10月17日土曜日

Boost::Pythonでmember function overloadを使う術

Boost::Pythonでmember function overloadを使うには、
class gaga
{
public:
void get(void);
void get(const int pos);
};
とすると
boost::python::class_("TvtkTranslation")

.def("get", (void (gaga::*)(void) ) &gaga::get)
.def("get", (void (gaga::*)(const int &) ) &gaga::get)

;