On Friday, 20 March 2015 at 23:47:37 UTC, Daniel Kozak wrote:

On Fri, 20 Mar 2015 16:27:04 -0700
Jonathan M Davis via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
wrote:

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@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...
}

yes only if I want all methods be virtual and without any other members:

class C {
final:
        string field;
}

does not work.

or

class Foo
{
final
{
    // methods...
}
}

Not usefull, I rarely have more than a few final function following one by one.


And even if you couldn't do that, you could always mark each function with
final individually.


Definitely the best way (in my cases).

Reply via email to