Proposal request: explicit propreties
Bill Baxter
dnewsgroup at billbaxter.com
Tue Apr 1 12:39:10 PDT 2008
Steven Schveighoffer wrote:
> "Bill Baxter" wrote
>> I've also run across cases where the compiler fails to realize it should
>> call a property method unless you explicitly put the () after it. I can't
>> recall exactly where. That's just a bug, but it is something to consider.
>
> It's when the object being returned by a property overloads opCall. The
> prime example I know is tango's Stdout.newline():
>
> Stdout("hello").newline()("world").newline;
>
> If you don't include the extra (), then the compiler thinks you're calling
> newline("world");
>
> This is one case where the nature of D properties is exploited in a way that
> would be unnatural with explicit properties. newline is clearly not a
> property, but using it in this way is pretty clear (and convenient).
No, that's not the one I was thinking of. I have seen cases where the
terminal () was required. Next time I run into it I'll try to make a repro.
--bb
More information about the Digitalmars-d
mailing list