shared and idup

Jonathan M Davis via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Aug 19 12:55:13 PDT 2014


On Tuesday, 19 August 2014 at 19:00:49 UTC, Marc Schütz wrote:
> On Tuesday, 19 August 2014 at 17:56:31 UTC, Low Functioning 
> wrote:
>> shared int[] foo;
>> auto bar() {
>> 	foo ~= 42;
>> 	return foo.idup;
>> }
>> Error: cannot implicitly convert element type shared(int) to 
>> immutable in foo.idup
>>
>> Is this not correct? If I instead dup'd an array of ints (or 
>> some other non-reference elements) and cast to immutable, 
>> would I be in danger of undefined behavior?
>
> Try upgrading you compiler to the just released 2.067, it works 
> for me with that version.

Actually, it's 2.066, but regardless, dup and idup were turned 
into free functions, so that will probably fix some bugs where 
they didn't work with shared or weren't nothrow or somesuch (or 
if it doesn't, it puts them one step closer to it).

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list