同名のmutable/const/immutableメンバ関数のオーバーロード
おお,全然気がついていなかった.
これはちゃんと整理できそうな問題だ.
import std.stdio; class A { override string toString() { return "A"; } override string toString() const { return "const(A)"; } override string toString() immutable { return "immutable(A)"; } } void main() { auto a = new A; writeln(a); auto ca = new const(A); writeln(ca.toString()); //object.Error: Access Violation auto ia = new immutable(A); writeln(ia.toString()); //object.Error: Access Violation }
それと,ca.toString() と ia.toString() も toString なくてもちゃんと表示して欲しい.
とりあえずバグってことでいいのかな?