Hello,

I wrap an array into a struct. Then I use alias this to expose the array functionality. Sadly, range properties of the array are not forwarded, and so I can't use the struct as an array with functions from std.algorithm and std.range.

-----
import std.range, std.stdio;
struct S {
        int[] contents;
        alias contents this;
}
void main() {
        S s;
        writeln(hasSlicing!(S)); // false
}
-----

I would like to be able to do that, however.

1. Why exactly hasSlicing (et al.) does not check the alias this-ed array when it checks the struct?

2. What should I do?

The solution I can think of is to insert the 3-6 range functions which forward the functionality to the underlying array, perhaps as a mixin.

Ivan Kazmenko.

Reply via email to