Non-ugly ways to implement a 'static' class or namespace?

ProtectAndHide ProtectAndHide at gmail.com
Tue Feb 7 07:33:30 UTC 2023


On Monday, 6 February 2023 at 21:46:29 UTC, Ali Çehreli wrote:
> On 2/6/23 12:56, ProtectAndHide wrote:
>
> > I'm not going to 'go write a
> > DIP'.
>
> Nobody will write a DIP about it because very few people ever 
> mentioned this issue over the years.
>
> And as 'static class' and 'static struct' are already usable in 
> D, a newcomer would definitely be confused with your "terrible" 
> conclusion.
>
> Ali

You being a little agressive don't you think?

My observation is very reasonable, and correct, and a new comer 
to D would do well to know that:

The compiler will allow you to do all these things, even if 
you've @disable'd' the constructor, and have only static members:

- the compiler will allow you to declare a variable of that type
- the compiler will allow you to declare an array with elements 
of that type
- the compiler will allow you to use that type as a type argument
- the compiler will allow you to use that type as a parameter
- the compiler will allow you to use that type as a return type

I can see no reason why anyone would want to do these things, in 
this context.

Nor can I see any reason, whatsoever, why the compiler would 
allow you to do these things, in this context.

It's not about me trying to remove power from the programmer. 
That's a nonsense argument, without any basis, whatsoever. It's 
just a (correct) observation.

Further comments that try to derail this will be ignored.


More information about the Digitalmars-d-learn mailing list