is it possible to store in setUserAny a weak_ptr?
It seems odd, but I have the following problem:
I use:
Code: Select all
this->entity->getUserObjectBindings().setUserAny(boost::shared_ptr<GameObject>(gameObjectPtr));
and later when e.g. selecting a game object, I get it this way:
Code: Select all
gameObjectPtr = Ogre::any_cast<boost::shared_ptr<GameObject>>((targetEntity->getUserObjectBindings().getUserAny()));
So I would like to store a weak_ptr of a game object instead.
I tried to, but I get tons of errors.
I did the following:
Code: Select all
this->entity->getUserObjectBindings().setUserAny(Ogre::Any(boost::weak_ptr<GameObject>(gameObjectPtr)));
Code: Select all
const Ogre::Any& any = (*itr)->getUserObjectBindings().getUserAny();
boost::weak_ptr<GameObject> weakPtr = Ogre::any_cast<boost::weak_ptr<GameObject>>(any);
GameObjectPtr gameObjectPtr = NOWA::makeStrongPtr(weakPtr);
Regards
Lax