Steven Schveighoffer wrote:
On Wed, 29 Jul 2009 18:07:19 -0400, Dimitar Kolev
<[email protected]> wrote:
Steven Schveighoffer Wrote:
On Wed, 29 Jul 2009 17:46:39 -0400, Dimitar Kolev
<[email protected]> wrote:
> Steven Schveighoffer Wrote:
>
>> On Wed, 29 Jul 2009 14:59:38 -0400, Dimitar Kolev
>> <[email protected]> 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