是否有QPOINTER专业化用于Boost :: bind
-
13-09-2019 - |
题
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" );
我很想有一个 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" );
是否有人为 QPointer
?
如果不知道,您知道从哪里开始或需要专门的工作,所以我可以自己做。
解决方案
添加这个超负荷 get_pointer
功能应该解决问题:
namespace boost {
template<typename T> T * get_pointer(QPointer<T> const& p)
{
return p;
}
}
不隶属于 StackOverflow