Operator precedence of "new"
Stanislav Blinov
blinov at loniir.ru
Fri Oct 15 06:07:38 PDT 2010
15.10.2010 16:12, bearophile пишет:
> Currently to call a method to a newly build object/struct you need:
>
> (new Foo).bar();
>
> But isn't it better to change the D operator precedence rules a bit and allow new to bind more closely than the method call, to allow a syntax like:
>
> new Foo.bar();
>
> Do you see bad side effects in this D2 change?
>
Aside from what was already mentioned about nested classes:
What if bar() is a static function of Foo? Current precedence allows the
compiler to bug you if you write
new Foo.bar();
If precedence is modified in the way you propose, then you effectively
get a call to static function through an instance (which in itself is
valid operation), though that instance is immediately thrown away.
More information about the Digitalmars-d-learn
mailing list