Defining the []= operator
===

I'm writing a class Grid whose elements are Points - an (int) grid each of whose squares has a (double) point in it. I've already defined this (the height value is stored elsewhere):

    Grid &operator[](Point p) { return floor(get_x(p)) + height * floor(get_y(p)); }

and I want to define the assignment operator. How would one go about this? Is it defined automatically based on the `[]` operator?

So far I have

    Grid &operator[]=(Pt p, Pt q) { data[floor(get_y(p)) * height + floor(get_x(p))] = q; }

but that seems like a circular definition.