Read-only property without @property

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Fri Sep 26 21:43:19 PDT 2014


On 9/26/14 9:26 PM, H. S. Teoh via Digitalmars-d wrote:

> Not a bad start. Though I do note that *declaring* an unsafe union
> (according to the above definitions) is currently allowed in @safe code
> by the compiler, but attempts to access a union member that overlaps
> with a pointer is rejected.

It makes sense that you can declare unsafe unions, because a declaration 
itself isn't @safe, it's only code that is.

But my attempts to test this haven't yielded an error.

e.g.:

class Foo
{
     union {
         private int _a;
         public int *a;
     }

     void setA(int x) @safe { *a = x;}
}

no complaints...

 > IOW, the compiler doesn't refuse definitions
> of potentially unsafe unions, as long as you don't actually try to do
> something unsafe with them. That might make unions more useful (they can
> be passed around in @safe code as long as certain operations are
> avoided), but probably also trickier to implement correctly.

I think it *should* be that way, but I'm not convinced it is yet.

-Steve


More information about the Digitalmars-d mailing list