opIndexCall

Jarrett Billingsley kb3ctd2 at yahoo.com
Sat Mar 24 21:25:10 PDT 2007


"Dan" <murpsoft at hotmail.com> wrote in message 
news:eu4man$1cs3$1 at digitalmars.com...
>
> Heh...
>
> the code was a sample, not my actual code (obviously)  I was trying to 
> only show enough to represent what I was trying to suggest.
>
> That said, I was hoping we could do:
>
> myAssocStruct[myCharArray](params)
>
> Which I've never seen done before in D in any examples or source online, 
> or in the guide.  I haven't actually tried a minimal test case, I just 
> didn't know the feature existed at all and was suggesting we ought to be 
> able to do so.
>
> If we can, then hey... I'll try to figure it out then.  : p

Uhh, well:

struct FuncHolder
{
    void function(int)[char[]] funcs;

    void function(int) opIndex(char[] name)
    {
        return funcs[name];
    }

    void opIndexAssign(void function(int) func, char[] name)
    {
        funcs[name] = func;
    }
}

void foo(int x)
{
    writefln("foo: ", x);
}

void bar(int x)
{
    writefln("bar: ", x);
}

void main()
{
    FuncHolder fh;
    fh["foo"] = &foo;
    fh["bar"] = &bar;

    fh["foo"](3);
    fh["bar"](4);
}


Unless you're getting at something else? 





More information about the Digitalmars-d mailing list