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.

War es hilfreich?

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
scroll top