Gibt es eine Qpointer -Spezialisierung für Boost :: Bind?
-
13-09-2019 - |
Frage
boost::bind
Griffe boost::shared_ptr
genauso wie rohe Zeiger.
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 eine haben boost::bind
Das geht um QPointers
als rohe Zeiger Zeiger.
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 die Spezialisierung gemacht hat? QPointer
?
Wenn nicht, wissen Sie, wo Sie anfangen sollen oder was spezialisiert werden muss, damit ich es selbst tun kann.
Lösung
Hinzufügen dieser Überladung der get_pointer
Funktion sollte den Trick machen:
namespace boost {
template<typename T> T * get_pointer(QPointer<T> const& p)
{
return p;
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow