final struct ?

user1234 user1234 at 12.de
Tue May 19 10:08:37 UTC 2020


On Tuesday, 19 May 2020 at 10:01:34 UTC, wjoe wrote:
> As I was reading a few source files of a library I found dozens 
> of final struct declarations like this:
>
> final struct Foo {
>
>   const pure final nothrow bar() { ... }
>
> }
>
> What's this supposed to express ?
>
> A final class is a class that can't be subclassed - structs 
> can't be subclassed, so does that express something else or is 
> the final redundant ?
> Additionally since it's not possible to subclass a struct it's 
> also not possible to override bar() - does 'final bar()' mean 
> something else ?
>
> The only relevant bits of my web search for 'dlang: final' were 
> results for final class, virtual functions and final switch. Am 
> I missing something ?

It has no purpose. In D many attributes are allowed even if they 
have no meaning.
D-Scanner checks this kind of stuff, to some extent, but not the 
compiler.


More information about the Digitalmars-d-learn mailing list