Yet a new properties proposal
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Jul 29 16:29:38 PDT 2009
Steven Schveighoffer wrote:
> On Wed, 29 Jul 2009 18:07:19 -0400, Dimitar Kolev
> <DimitarRosenovKolev at hotmail.com> wrote:
>
>> Steven Schveighoffer Wrote:
>>
>>> On Wed, 29 Jul 2009 17:46:39 -0400, Dimitar Kolev
>>> <DimitarRosenovKolev at hotmail.com> wrote:
>>>
>>> > Steven Schveighoffer Wrote:
>>> >
>>> >> On Wed, 29 Jul 2009 14:59:38 -0400, Dimitar Kolev
>>> >> <DimitarRosenovKolev at hotmail.com> wrote:
>>> >>
>>> >> > Steven Schveighoffer Wrote:
>>> >> >
>>> >> >> I don't see what advantages this has over other proposals.
>>> What is
>>> >> >> wrong
>>> >> >> with a.a such that we have to resort to a#a?
>>> >> >>
>>> >> >> -Steve
>>> >> >>
>>> >> >
>>> >> > People are crying over compilers not know which is a property and
>>> >> which
>>> >> > is not.
>>> >>
>>> >> At definition time, not usage time. I want the usage to be
>>> identical to
>>> >> fields, otherwise, it's not as seamless. This makes an important
>>> >> difference for generic code.
>>> >
>>> > What if the compiler just expanding this to well inlining. So a#a = 3
>>> > would just means a.a = 3 just that the compiler will have easier time
>>> > understanding this.
>>>
>>> If you specify a property at definition by doing int#a, then why do you
>>> also need to specify it's a property when calling it? And if it's not
>>> necessary, then your proposal is no different than adding a keyword. On
>>> those merits, it's fine with me if people think int #a is better than
>>> property int a, but I absolutely don't want to have to modify my code to
>>> call properties using a #.
>>>
>>> -Steve
>>
>> Since when is D 2.0 frozen so that we have to take care of old D 2.0
>> code.
>>
>> This is not an accusation just a reminder. Hope ware not going for the
>> mistakes of C++.
>
> I understand that D2 is not frozen. I don't want to call properties
> with a#b instead of a.b in D2, D3, or even D4, unless you can show that
> it provides some benefit. From what I can tell, it does not. Sorry. I
> don't mean to be harsh, but I don't think your proposal makes any sense
> at all. Maybe you can answer my first question -- why do you need to
> call a property with a#b when you can call it with a.b?
I agree. The whole point of properties is that they are largely
interchangeable with fields. If that's not an issue, we might as well
use a.b() and call it a day.
Andrei
More information about the Digitalmars-d
mailing list