On Sunday, February 17, 2013 14:47:12 H. S. Teoh wrote:
> On Sun, Feb 17, 2013 at 11:46:24PM +0100, Andrej Mitrovic wrote:
> > On 2/17/13, Steven Schveighoffer <schvei...@yahoo.com> wrote:
> > > A class that can't be instantiated has a private constructor.
> > 
> > An alternative to that is:
> > 
> > final abstract class C
> > {
> > 
> >     static:
> > }
> > 
> > You can't derive from it and you can't instantiate it.
> 
> Nice idiom!
> 
> This could be D's equivalent to C++ namespaces. ;-)

It's the closest that we've got, and Phobos uses it in a couple of places 
(like std.datetime.Clock), but it gets complained about quite a bit every time 
it comes up (particularly with regards to std.datetime.Clock). So, while it's 
useful upon occasion and some people like it, it's generally shunned. For the 
most part, it's considered better to just declare a free function and be done 
with it.

- Jonathan M Davis

Reply via email to