Welcome to Web-News
A Web-based News Reader
Subject Re: Templated interface
From DF <deefriend@yahoo.com>
Date Tue, 14 Oct 2008 17:51:55 -0400
Newsgroups digitalmars.D

Simen Kjaeraas Wrote:

> On Tue, 14 Oct 2008 23:41:57 +0200, DF <deefriend@yahoo.com> wrote:
>
> > Is it possible to create templated interfaces in D? And if possible than  
> > can anyone provide some good example on templated interface.
>
> interface foo(T)
> {
>         T property();
>         T property(T value);
> }
>
> class bar : foo!(int)
> {
>         int data;
>         
>         int property()
>         {
>                 return data;
>         }
>         
>         int property(int value)
>         {
>                 return data = value;
>         }
> }
>
> void main()
> {
>         bar b = new bar;
>         
>         b.property = 4;
>         
>         writefln(b.property);
> }
>
> --
> Simen

Thanx, Simen! I've made the solution myself. Maybe if anyone is interested I can post it. Though your sampe is good, I've got more complicated thing:

interface Stack(T) {

        void push(T element);

        T pop();

        int isEmpty();
}

class StackImpl(T) : Stack!(T) {

        private T[] data;

        this() {
        }

        public void push(T element) {
                ...
        }

        public T pop() {
                ...
        }

        public int isEmpty() {
                ...
        }

}

void main() {
         Stack!(char) data = new StackImpl!(char)();
}

Seems to work... :)

Recent messages in this thread
 
-# Templated interface DF 14-Oct-2008 05:41 pm
.-# Re: Templated interface Simen Kjaeraas 14-Oct-2008 05:45 pm
.|\# Re: Templated interface (Current message) DF 14-Oct-2008 05:51 pm
.\# Re: Templated interface Robert Fraser 14-Oct-2008 05:51 pm