immutable singleton pattern with static opCall
Michal Minich
michal.minich at gmail.com
Sat Jun 26 17:19:44 PDT 2010
On Sun, 27 Jun 2010 09:36:04 +0930, Justin Johansson wrote:
> immutable class Foo
> {
> static private Foo instance;
>
> static this() { // line 9
> instance = new Foo;
> }
>
> static Foo opCall() { // line 13
> return instance;
> }
> }
>
> test.d(9): Error: function test.Foo._staticCtor2 without 'this' cannot
> be const/immutable
> test.d(13): Error: function test.Foo.opCall without 'this' cannot be
> const/immutable
there is bug report on this subject
http://d.puremagic.com/issues/show_bug.cgi?id=3598
Your example also uses static variable, which was not considered in the
bug report. This makes things more complex to design properly, because it
seems now that one does not want static functions to be affected by
immutable attribute of class, but it should affect static data...
More information about the Digitalmars-d
mailing list