Optional function invocation parentheses

monarch_dodra monarchdodra at gmail.com
Thu Sep 20 07:44:51 PDT 2012


On Thursday, 20 September 2012 at 14:31:55 UTC, Will Rubin wrote:
> Just a _write_ property:
>
> struct Bleem {
>   int _value;
> public:
>   //@property int value() { return _value; }
>   @property int value(int newValue) { return _value = newValue; 
> }
> }
>
> void main() {
>   auto bleem = Bleem();
>   writeln("Result: ", bleem.value = 9);
> }
>
> Application Output
> Result: 9
>
> Off the top of my head (C#, Delphi, Python) have them return 
> void. Maybe it's not so uncommon though.
>
> On Thursday, 20 September 2012 at 13:57:54 UTC, monarch_dodra 
> wrote:
>>> A bit interesting to see I can declare a write property that 
>>> returns a value rather than void.
>>>
>> Why would a property return void. If anything, it would return 
>> a non void:
>>
>> auto a = someRange.front;
>>
>> front is a property that returns a value.

It is usually more common to just have a read property that 
returns a reference, which can be written to.

If the property needs an explicit write version, then usually, 
returning a value is considered "costly".

But the point is you can do whatever you want anyways.


More information about the Digitalmars-d-learn mailing list