problems with Rebindable
chmike via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat May 21 05:17:28 PDT 2016
On Saturday, 21 May 2016 at 10:42:13 UTC, chmike wrote:
> source/app.d(23,27): Error: cannot implicitly convert
> expression (one) of type immutable(Obj) to app.Info
Apparently Rebindable doesn't support polymorphism. This is
hopefully fixable.
> source/app.d(43,5): Error: 'x1' must be of integral or string
> type, it is a app.Info
> source/app.d(45,10): Error: cannot implicitly convert
> expression (one) of type immutable(Obj) to app.Info
A Rebindable variable can't be used as a switch argument. This
would require a change to the language rules. However, the static
immutable object Infos.one can be used as a case argument.
The conclusion is that Rebindable doesn't cover the needs of a
mutable object reference.
In the flyweight pattern we only need to compare object addresses
and we also want to use the lazy pattern to instantiate the
immutable instances.
More information about the Digitalmars-d-learn
mailing list