Revised RFC on range design for D2

KennyTM~ kennytm at gmail.com
Fri Sep 26 09:19:26 PDT 2008


Andrei Alexandrescu wrote:
> KennyTM~ wrote:
>> Andrei Alexandrescu wrote:
>>> Bruno Medeiros wrote:
>>>> As a matter of coding style conventions, I would say that using the 
>>>> implicit property function call feature on a function that changes 
>>>> state is *bad* style, and surely hope the community would agree on 
>>>> that.
>>>
>>> I sure hope they won't agree to an unsupported assertion.
>>>
>>
>> Actually I *do* hate this "feature" ^_^.
>>
>> And this "feature" has been put to challenged before:
>>  * Bug 2159. (http://d.puremagic.com/issues/show_bug.cgi?id=2159)
>>  * "Omitting Parens is an Evil" 
>> (http://www.digitalmars.com/d/archives/digitalmars/D/Omittable_parens_is_an_evil_73881.html) 
>>
>> *http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=D&artnum=17579 
>>
>> But nothing got changed.
> 
> I don't think the bug report has much strength.

I mean the discussion within the bug report. That's a voice from the 
community isn't it?!

> 
>> To the very least, when using next as a property I assume the call 
>> won't produce any secondary effect on src from the syntax, since I'm 
>> just reading a state! Not so if one calls src.next() as the "()" is an 
>> alarming sign that src _may_ change afterwards. This could is just a 
>> problem of personal taste since the compiler does not forbid 
>> src.next(), but not so if you're reading other's code.
>>
>> P.S. If src.next() is too lengthy, why not just adopt ++src?
> 
> Because people (in wake of the recently introduced array operations) may 
> legitimately expect that to mean "increment all elements of src".
>

It's fine not to use ++src since C++ is the only language that uses this 
syntax for iterators anyway, but may I mention that, to increase all 
elements of an array you use ++a[], note that there is a [] in the end. 
  ++a is syntax error anyway.

Also you should complain about ++p vs ++*p for a pointer p ;)

Like the () after the function call, which says I want to return the 
value after the function execution instead of the function object, the 
[] to my mind also signify I'm working on the content of the array, not 
the array itself.

> 
> Andrei


More information about the Digitalmars-d-announce mailing list