Well, seems like disambiguation will solve only portability issues. >From performance point of view in order to call int opIndexAssign(int value, size_t i) you should fisrt evaluate value, then indexes.