Welcome to Web-News
A Web-based News Reader
Subject Re: query interface
From Jarrett Billingsley <jarrett.billingsley@gmail.com>
Date Wed, 21 Jan 2009 11:11:28 -0500
Newsgroups digitalmars.D.learn

On Wed, Jan 21, 2009 at 10:30 AM, Qian Xu <quian.xu@stud.tu-ilmenau.de> wrote:
> Hi All,
>
> can D check, whether a class A an Interface B supports?
>
> like:
>
>  if (supports(class_A, intf_B))
>  {
>     cast(intf_B) (class_A).hello();
>  }

At compile time, like Frits said, you can use is(class_A : intf_B).

At runtime, you can use cast(intf_B)someInstance.  That returns 'null'
if someInstance does _not_ inherit from intf_B.

if(auto i = cast(intf_B)instanceOfA)
    i.hello();

Recent messages in this thread
 
-# query interface Qian Xu 21-Jan-2009 10:30 am
.|# Re: query interface Qian Xu 21-Jan-2009 10:33 am
.-# Re: query interface Frits van Bommel 21-Jan-2009 11:02 am
.|-# Re: query interface Qian Xu 21-Jan-2009 11:14 am
.|.\# Re: query interface Trass3r 21-Jan-2009 11:32 am
.\# Re: query interface (Current message) Jarrett Billingsley 21-Jan-2009 11:11 am