On Sunday, 6 October 2019 at 20:34:55 UTC, Brett wrote:
If it can be done and make to work well with ranges it would allow many algorithms to be very easily expressed and make ranges more powerful.
You can make it a range by adding an "alias this" to the original array:
struct ExtendedArray(T)
{
T[] a;
alias a this;
T opIndex(int i)
{
if (i < 0) return a[0];
else if (i >= a.length) return a[$-1];
else return a[i];
}
}
Full example: https://run.dlang.io/is/2x6LKD
