すげー


template LinkedList(){
alias typeof(this) T;
T* next;
T* prev;

void remove(){
if(next != null){
next.prev = prev;
}
if(prev != null){
prev.next = next;
}
this.next = null;
this.prev = null;
}
void add(T t){
t.next = this.next;
t.prev = this;
this.next = t;
}
}

class Foo{
mixin LinkedList;
}

こんなことできるのか、さすがD言語
mixin LinkedList;の一言を書くだけでどんな{class|struct}も今日から連結リストになるよ!というソースでした。
(追記)今のコンパイラじゃ動かないねこれ