...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

同名の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 なくてもちゃんと表示して欲しい.
とりあえずバグってことでいいのかな?