boost/get_pointer.hpp std::shared_ptr用のget_pointerが無いからPython公開でこける件
/usr/local/include/boost-1_39/boost/python/object/pointer_holder.hpp:125: error: no matching function for call to ‘get_pointer(std::shared_ptr<hoge>&)’
-std=c++0xにして、std::shared_ptr(not typedef of boost::shared_ptr)を使う場合に、こんなエラーが出る。
pointer_holder.hppやらを追いかけていくとどうやら、boost/get_pointer.hppで定義されてる関数に問題がある気配
>boost/get_pointer.hpp
namespace boost { // get_pointer(p) extracts a ->* capable pointer from p template<class T> T * get_pointer(T * p) { return p; } // get_pointer(shared_ptr<T> const & p) has been moved to shared_ptr.hpp template<class T> T * get_pointer(std::auto_ptr<T> const& p) { return p.get(); } } // namespace boost
boost::shared_ptrはあるようだけど、std::shared_ptrがない
+template<class T> T * get_pointer(std::shared_ptr<T> const& p) +{ + return p.get(); +}