new DIP5: Properties 2

Steven Schveighoffer schveiguy at yahoo.com
Fri Jul 31 10:07:27 PDT 2009


On Fri, 31 Jul 2009 12:13:55 -0400, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> Maybe we should vote on this too. BTW, seems like the last poll wasn't  
> quite the expected landslide against the dictature :o).

I think the poll might have been skewed due to context (forget my  
newsgroup poll, that was worthy of an abortion, but I also didn't mean to  
submit it :), I'm talking about Ary's)

The question was asked, what do you think this code means.  In the context  
of D, where you know a symbol without parentheses can mean either a  
function or a property/field, I'm certain there were several respondants  
who didn't understand it was asking what they think is best, not *what D  
currently does*.  Ask that same questions to C++ developers and see what  
you get...

It's hard to phrase the question properly without bias to a group of  
people who already know the current behavior.  Maybe something like:

Assume the D programming language required parentheses for normal  
parameter-less functions, and required no parentheses for parameter-less  
functions that returned a property.  For example, the following code  
should imply a getter for a filter inside x:

     auto tmp = x.filter;

And the following code should imply performing a filtering action using x,  
returning the result:

     auto tmp = x.filter();

Do you think it's worth adding such a capability, given that you will then  
no longer be able to call ordinary parameter-less functions without  
parentheses, an author of a property function must properly indicate that  
the function is a property, and the compiler must trust the author for  
this implication?

-Steve



More information about the Digitalmars-d mailing list