Y at-il une spécialisation QPointer pour boost :: bind
-
13-09-2019 - |
Question
gère boost::bind
boost::shared_ptr
la même manière que les pointeurs premières.
QObject * object(new QObject);
boost::shared_ptr<QObject> sharedObject(new QObject);
bind(&QObject::setObjectName, object, _1)( "name" );
bind(&QObject::setObjectName, sharedObject, _1)( "name" );
J'aimerais avoir une boost::bind
qui gère QPointers
comme pointeur de pointeurs premières.
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" );
Y at-il quelqu'un qui a fait la spécialisation pour QPointer
?
Si vous savez pas faire où commencer ou ce qui doit être spécialisé, donc je peux le faire moi-même.
La solution
L'ajout de cette surcharge de la fonction get_pointer
devrait faire l'astuce:
namespace boost {
template<typename T> T * get_pointer(QPointer<T> const& p)
{
return p;
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow