Yet a new properties proposal
Dimitar Kolev
DimitarRosenovKolev at hotmail.com
Wed Jul 29 15:24:22 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?
>
> -Steve
>
Different example:
class plane
{
bool fly = false;
bool fly()
{
if (fly == false) return false;
// code for flying.
// If it breaks for some reason
return false;
// else return that everything is okay.
return true;
}
}
class pilot
{
if (myPlane.fly)
myPlane.fly;
}
So this becomes:
class plane
{
bool fly = false;
bool fly()
{
if (@fly == false) return false;
// code for flying.
// If it breaks for some reason
return false;
// else return that everything is okay.
return true;
}
}
class pilot
{
if (myPlane at fly)
myPlane.fly;
}
More information about the Digitalmars-d
mailing list