UDP enhancement

Timon Gehr timon.gehr at gmx.ch
Sun Jun 30 18:47:34 PDT 2013


On 07/01/2013 03:22 AM, JS wrote:
> struct Foo
> {
>      @property int data() { return m_data; } // read property
>      @property int data(int value) { return m_data = value; } // write
> property
>      private: int m_data;
> }
>
> It would be nice if properties had an internal variable to use instead
> of having to declare it explicitly:
>
>
> struct Foo
> {
>      @property int data() { return data.value; } // read property
>      @property int data(int value) { return data.value; } // write property
> }
>
> This reduces code complexity. If a property does not use the internal
> variable(which I signify by .value) then it does not add any storage.
> This allows one to easily wrap fields into properties without having to
> create private fields for each property unless needed.

struct S{
     T value;
}

struct T{
     S get(){ return S(this); }
     alias get this;
}

struct Foo{
     @property S data(){ return data.value; }
}


More information about the Digitalmars-d mailing list