On 9/21/10 14:36 CDT, kenji hara wrote:
Hi.

I heard Boost.Interfaces recently. Then, it implemented by D.
http://github.com/9rnsr/scrap/blob/master/interfaces/interfaces.d

How about you?

Hi Kenji,


Looking very interesting. One thing I'd change would be the interface definition. Ideally the client code would look like this:

static class A
{
  int draw(){ return 10; }
}

static class B : A
{
  int draw(){ return 20; }
}

interface Drawable
{
  int draw();
};

unittest
{
  Drawable d = adaptTo!Drawable(new A);
  assert(d.draw() == 10);
  d = adaptTo!Drawable(new B);
  assert(d.draw() == 20);
}

adaptTo would rely on introspection and code generation to define an implementation of Drawable that forwards calls to an object.


Andrei

Reply via email to