[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Userdata Lifetime Management
- From: Peter Cawley <lua@...>
- Date: Thu, 5 Jul 2012 11:55:10 +0100
On Wed, Jul 4, 2012 at 11:32 PM, Vinnie Falco <vinnie.falco@gmail.com> wrote:
> LuaBridge stores the smart pointer object inside the userdata, for the
> Shared lifetime model. However, this does not solve the problem. The
> reason that std::shared_ptr<> doesn't work is because of aliasing. Two
> different instances of shared_ptr can point to the same object, and
> their reference counts will not be shared. This is explained in the
> documentation. When Lua passes a shared_ptr wrapped object using
> LuaBridge to a C++ function that takes only a pointer to the object,
> it has no way of knowing that the object is really wrapped by a smart
> pointer.
Have you considered the case of the type in question inheriting from
std::enable_shared_from_this?