immutable promise broken in unions?

Shriramana Sharma via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jan 2 02:04:47 PST 2016


import std.stdio;
union EarthLocation
{
    struct { immutable double lon, lat, alt; }
    double[3] data;
}
void main()
{
    EarthLocation d = {data: [4, 5, 6]};
    writeln(d.data);
    d.data = [1, 2, 3];
    writeln(d.data);
}

I get the output:

[4, 5, 6]
[1, 2, 3]

I thought the promise of `immutable` was: never changes, whether via this 
interface or otherwise. How does then the above work?

Using DMD 2.0.69.2 on Kubuntu 64 bit.

-- 
Shriramana Sharma, Penguin #395953


More information about the Digitalmars-d-learn mailing list