Templated interface

DF deefriend at yahoo.com
Tue Oct 14 14:51:55 PDT 2008


Simen Kjaeraas Wrote:

> On Tue, 14 Oct 2008 23:41:57 +0200, DF <deefriend at 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... :)



More information about the Digitalmars-d mailing list