Multiple return type from object factory possible?
deed
none at none.none
Sat Jun 22 09:58:22 PDT 2013
class A { ... }
class NonContainer : A { ... }
class Container : A { A[] container; }
class NC1 : NonContainer {}
...
class C1 : Container {}
...
A getO(string info)
{
switch (info)
{
default : return new NonContainer();
case "info1": return new C1();
case "info2": return new NC1();
case "info3": return new Container();
case "info4": return new NonContainer();
...
}
}
void foo()
{
auto o = getO("some information");
if (is(typeof(o) == Container) { ... } // Doesn't work.
// Type is always A.
...
}
Is there a way to make getO return the most specialized type of
the instantiated object in the switch statement to enable this
pattern?
More information about the Digitalmars-d-learn
mailing list