rtti cast
BCS
ao at pathlink.com
Thu May 8 09:57:56 PDT 2008
Reply to terranium,
> BCS Wrote:
>
>> The point is that offtent a failed cast is not an indecation of an
>> error. For instance code like this
>>
>> class A {}
>> class B1 : A {}
>> class B2 : A {}
>> void foo(A a)
>> {
>> if(auto b = cast(B1)a) {}
>> else if(auto b = cast(B2)a) {}
>> else {}
>> }
> I see polimorphism should help here.
>
dosn't always work
module third.party.lib;
class A {}
module my.lib.one
class B1 : A { int newFn(){...}}
module my.lib.teo
class B2 : A { char somthingNew(char[] c){...}}
void foo(A a)
{
if(auto b = cast(B1)a)
b.newFn();
else if(auto b = cast(B2)a)
b.somthingNew("hello");
else
throw new Error("a isn't a B1 or B2");
}
More information about the Digitalmars-d
mailing list