boost::bind
behandelt boost::shared_ptr
auf die gleiche Weise wie rohe Zeiger.Gibt es eine QPointer Spezialisierung für 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");
Ich würde gerne ein boost::bind
haben, die QPointers
als rohe Zeiger Zeiger verarbeitet.
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");
Gibt es jemanden, der Spezialisierung für QPointer
gemacht hat?
Wenn nicht, wissen Sie, wo ich anfangen soll oder was spezialisiert werden muss, damit ich es selbst machen kann.
Welche Version von Qt verwenden Sie? Die dokumentierte QPointer-Klasse in Version 4.5 hat keine get-Methode. Vom Aussehen her sollte Ihre gewünschte Syntax funktionieren ... –
Sorry get ist für Lambda/shared_ptr, für QPointer sind es Daten – TimW
Template Argument Deduction bedeutet, dass QPointer Argumente ihren Typ als QPointer abgeleitet haben, auch wenn sie einen Operator haben T *() const. –
MSalters