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