On Thursday, 21 January 2021 at 14:25:41 UTC, IGotD- wrote:
On Thursday, 21 January 2021 at 14:00:28 UTC, cerjones wrote:

Not possible, indexes are of type size_t which is unsigned. If you want negative indexes you need to wrap arrays in your own implementation and offset 0 so that negative indexes can be used.

import std;

struct Foo
{
    int opIndex(int idx)
    {
        return idx;
    }
}

void main()
{
    Foo foo;
    writeln(foo[-1]);
}

prints:

-1

And just for weirdness...

import std;

struct Foo
{
    string opIndex(string s)
    {
        return s;
    }
}

void main()
{
    Foo foo;
    writeln(foo["ohrealy?"]);
}

prints:

ohreally?

Reply via email to