wie cast von void* auf shared_ptr<mytype>

Ich habe ein problem mit einem OpenGL Projekt, Konvertierung von einem void* Zeiger auf eine shared_ptr<mytype>.

Bin ich mit Kugel setzen von Zeigern auf den starren Körper mit:

root_physics->rigidBody->setUserPointer(&this->root_directory->handle);

Den Griff Typ shared_ptr<mytype>.

Den void* - Zeiger zurückgegeben, indem Sie Kugel-library-Funktion, getUserPointer():

RayCallback.m_collisionObject->getUserPointer()

Zu konvertieren zurück zu mytype, static_cast funktioniert nicht:

std::shared_ptr<disk_node> u_poi = static_cast< std::shared_ptr<disk_node> >( RayCallback.m_collisionObject->getUserPointer() );

Den Fehler bei der Kompilierung:

/usr/include/c++/4.8/bits/shared_ptr_base.h:739:39: error: invalid conversion from void*’ to mytype*’ [-fpermissive]

Irgendeine Idee, wie ich das umwandeln kann von der void* zurückgegeben getUserPointer() zu shared_ptr<mytype>?

Schreibe einen Kommentar