Why are static arrays not ranges?

cym13 via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Sep 21 13:43:22 PDT 2015


On Monday, 21 September 2015 at 20:33:10 UTC, Jack Stouffer wrote:
> import std.range;
>
> void main() {
>     int[6] a = [1, 2, 3, 4, 5, 6];
>
>     pragma(msg, isInputRange!(typeof(a)));
>     pragma(msg, isForwardRange!(typeof(a)));
>     pragma(msg, isRandomAccessRange!(typeof(a)));
> }
>
> $ dmd -run test.d
> false
> false
> false
>
> That's ridiculous. Do I have to wrap my static arrays in 
> structs to get range primitives?
>
> Is there an actual reason for this?

For an element of explanation see my answer at a similar question 
here:

http://forum.dlang.org/post/xdhuberedpjuxydbwdip@forum.dlang.org


More information about the Digitalmars-d-learn mailing list