boost::bind处理boost::shared_ptr的方式与原始指针相同。
QObject * object(new QObject);
boost::shared_ptr<QObject> sharedObject(new QObject);
bind(&QObject::setObjectName, object, _1)( "name" );
bind(&QObject::setObjectName, sharedObject, _1)( "name" );我希望有一个将QPointers作为原始指针处理的boost::bind。
QPointer<QObject> guardedObject(new QObject);
// i want to write it like this
bind(&QObject::setObjectName, guardedObject, _1)( "name" );
//now i have to do it like this
bind(&QObject::setObjectName, bind(&QPointer<QObject>::data, guardedObject), _1)( "name" );有没有人专门为QPointer做过专门工作?
如果不知道,你知道从哪里开始,什么需要专门,所以我可以自己做。
发布于 2009-06-11 14:26:47
添加get_pointer函数的重载应该可以做到这一点:
namespace boost {
template<typename T> T * get_pointer(QPointer<T> const& p)
{
return p;
}
}https://stackoverflow.com/questions/981087
复制相似问题