Tim*_*imW 2 c++ qt boost-bind qpointer
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" );
Run Code Online (Sandbox Code Playgroud)
我希望有一个boost::bind处理QPointers作为原始指针指针.
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" );
Run Code Online (Sandbox Code Playgroud)
是否有人为此专业化QPointer?
如果不是,你知道从哪里开始或需要专门做什么,所以我可以自己做.
添加get_pointer函数的这个重载应该可以解决这个问题:
namespace boost {
template<typename T> T * get_pointer(QPointer<T> const& p)
{
return p;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |