On Tuesday, 3 March 2015 at 05:12:15 UTC, Walter Bright wrote:
On 3/2/2015 6:04 PM, weaselcat wrote:
On Tuesday, 3 March 2015 at 01:56:09 UTC, Walter Bright wrote:
On 3/2/2015 4:40 PM, deadalnix wrote:
After moving resources, the previous owner can no longer be used.

How does that work with the example presented by Marc?

He couldn't pass s and a member of s because s is borrowed as mutable.
He would have to pass both as immutable.

A pointer to s could be obtained otherwise and passed.

Under normal circumstances, if the pointer to s is an lvalue, the refcount will be bumped when it is taken.

Isn't the only problem now aliasing something (i.e. a global) invisibly through a parameter? This is easily solved -- when passing a global reference, or duplicating a variable in the same call, wrap the call in an add/release cycle. This preserves the alias for the duration of the call.

Or are we also talking about taking the address of a non-rc'd subcomponent of an rc'd struct?

Reply via email to