使用boost.python將模板函數從C++導出爲python的正確方法是什麼?下面是代碼:導出模板函數
template<typename T>
T getValue(const std::string &key, const T &defaultValue = T()) {}
// Export into some python class:
class_<ConfigManager>(...)
.def("GetValue", getValue<int>)
.def("GetValue", getValue<float>)
.def("GetValue", getValue<std::string>);
與用法:
print GetValue("width")
Boost.Python.ArgumentError: Python argument types in
GetValue(ConfigManager, str)
did not match C++ signature:
GetValue(ConfigManager {lvalue}, std::string, int)
有什麼不對?
在什麼範圍是getValue?它是一個類成員函數還是靜態方法? – zdan 2011-03-18 20:39:31
@zdan是其班級成員。我隱瞞了這部分,以獲得更少的代碼。 – Ockonal 2011-03-18 20:45:27