65,208
社区成员
发帖
与我相关
我的任务
分享
class Test : public boost::enable_shared_from_this<Test>
template<class T>
class Test : public boost::enable_shared_from_this</*???*/>
return TSP(obj, boost::bind(&ObjectPool<T>::FreeObject, ObjectPool<T>::shared_from_this(), _1));
return TSP(obj, boost::bind(&ObjectPool<T>::FreeObject, boost::enabled_shared_from_this<ObjectPool<T> >::shared_from_this(), _1));
但是,运行就会coredump:
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr> >'
what(): tr1::bad_weak_ptr
已放弃 (core dumped)
应该是weak_ptr没有正确设置。
xxx.hpp : 在成员函数‘BroadInter::ObjectPool<T>::TSP BroadInter::ObjectPool<T>::AllocObject()’中:
xxx.hpp:126:75: 警告:‘shared_from_this’的实参不依赖模板参数,所以‘shared_from_this’的声明必须可用 [-fpermissive]
return TSP(obj, boost::bind(&ObjectPool<T>::FreeObject, shared_from_this(), _1));
这个该如何解决?