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));