هل هناك تخصص QPointer لتعزيز :: 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