boost::bind
gère boost::shared_ptr
de la même manière que les pointeurs bruts.Y at-il une spécialisation QPointer pour boost :: bind
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 pointeurs brut.
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");
Est-ce qu'il ya quelqu'un qui a fait la spécialisation pour QPointer
? Si vous ne savez pas par où commencer ou ce qui doit être spécialisé, je peux le faire moi-même.
Quelle version de Qt utilisez-vous? La classe QPointer documentée dans la version 4.5 n'a pas de méthode get. De l'apparence de cela votre syntaxe désirée devrait fonctionner ... –
Désolé obtenir est pour lambda/shared_ptr, pour QPointer c'est données – TimW
Modèle Argument Déduction signifie que les arguments QPointer ont leur type déduit comme QPointer , même s'ils ont un opérateur T *() const. –
MSalters