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

Reply via email to