Uniform Function Call syntax for properties

Steven Schveighoffer schveiguy at yahoo.com
Fri Oct 8 06:46:08 PDT 2010


On Fri, 08 Oct 2010 09:30:59 -0400, Denis Koroskin <2korden at gmail.com>  
wrote:
>
> C# uses 'this' keyword for that purpose:
>
> @property int set(this int x, int y)
> {
>      x = y;
> }
>
>
> @property int get(this const(int) x)
> {
>      return x;
> }
>
> int a = 1;
> a.set(42); // a is 42 now
> 3.set(42); // fails to compile, 3 is of type const(int)

Using this is a good idea, but I don't think we should automatically ref  
the value.  Also this is already a symbol name, can't we just use it?   
What I think might be a good idea is to *name* the target this, and then  
just allow the normal adornments to describe the type.  i.e.:

@property int set(ref int this, int y) {}

will work only for lvalues, whereas

@property int set(int this, int y) {}

works for rvalues also.  The

What do you think?

-Steve


More information about the Digitalmars-d mailing list