final methods by default
Jonathan M Davis via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Mar 20 16:27:04 PDT 2015
On Friday, March 20, 2015 23:53:14 Daniel Kozak via Digitalmars-d-learn wrote:
>
> On Fri, 20 Mar 2015 22:11:51 +0000
> weaselcat via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com> wrote:
>
> > On Friday, 20 March 2015 at 14:25:22 UTC, ref2401 wrote:
> > > Why aren't methods of class final by default?
> >
> > history
> >
> > use final class, it should devirtualize all methods.
> > see: https://github.com/D-Programming-Language/dmd/pull/4427
>
> Yes, but you can not extend final class. Ok you can still use UFCS but it
> is not elegand solution.
Then you can just do
class Foo
{
final:
// methods...
}
or
class Foo
{
final
{
// methods...
}
}
And even if you couldn't do that, you could always mark each function with
final individually.
Yes. final should probably be the default, but unfortunately, that's not the
choice that was made early on, and it was decided later that the change
wasn't worth the breakage. But it can be worked around easily enough.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list