...ing logging 4.0

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

std.range - dmd2.029

import std.range, std.stdio;

struct R
{
	int opIndex(int n){
		return 0;//dummy
	}
}

void main()
{
	R r;
	auto e = r[0];
	writeln(isRandomAccessRange!(R)); //false?
}

あれー? こうじゃないのかな.
つーか,標準ライブラリが1つもRangeを提供してくれないってのはどうなのよw
あ,組み込み配列があるから1つか.
コンテナぽいのは,組み込み配列と組み込み連想配列くらいか?
vectorとmapはこれらを強化してくれたらいいけど,両方ともちゃんとRangeなのかなあ?
そろそろリストのRangeも用意してー.

要件不足

writeln(isRandomAccessRange!(int[])); //true

こうなるのでRandomAccessRangeのための要件が足りないらしい.
サンプルをよく見たら次のも必要なのか.

static assert(isForwardRange!(R)); // range is forward
static assert(isBidirectionalRange!(R) || isInfinite!(R));