import std.stdio; class Foo { int[string] vals; Foo opIndexAssign(int val, string key) { writefln("Got key %s", key); vals[key] = val; return this; } } Foo foo; void main() { foo = new Foo; foo["lol"] = 5; writefln("%d", foo.vals["lol"]); }