D/templateTop / D / template構文解析・意味解析構文は常に正しい必要あり。 インスタンス化
abstract classv0.127 abstract class Base(T) {} class Derived(T): public Base!(T) {} はダメらしい(インスタンス化したときに文句が言われる。 あんまりよくわかってない。 子クラスをシグネチャに含むメソッドのoverridev0.127 class Base(T) { void method(Derived!(T) t) {printf("Base\n");} } class Derived(T) : public Base!(T) { void method(Derived t) {printf("Derived\n");} /* error void method(Derived!(T) t) {} override void method(Derived t) {} override void method(Derived!(T) t) {} */ } void main() { Base!(int) base = new Base!(int)(); Derived!(int) derived = new Derived!(int)(); base.method(derived); derived.method(derived); base = derived; base.method(derived); } 挙動としてはオーバーライドしているのだが override とつけるとエラーになる。 |