how to create a local copy of shared pointer?
thedeemon
dlang at thedeemon.com
Mon Oct 15 09:00:04 PDT 2012
On Monday, 15 October 2012 at 15:34:43 UTC, denizzzka wrote:
>> Because shared(S) and S are different types. Either declare s
>> as shared too or use a cast.
>
> Why it was made in the language? This can be a safe automatic
> conversion I think.
Theoretically compiler can work with shared and non-shared types
very differently, with the latter it can do all the work in
registers without always updating the memory because it knows no
other threads will look at this data. Shared data is much more
volatile. So actually not only automatic but also explicit cast
should be illegal. I don't know how much differently the compiler
deals with these types right now though.
Currently the whole story of separating shared and local types is
not fully thought, imho, we need some kind of
shared-polymorphism, without it we have to use casts quite often
and it's not a right thing to do.
More information about the Digitalmars-d-learn
mailing list