#include <iostream>
struct MyType
{
operator size_t(){return 0;}
MyType &operator[](size_t){return*this;}
};
int main()
{
int a[] = {1, 2}, b = 0;
MyType mt;
std::cout << mt[a] << std::endl;
//std::cout << b[mt] << std::endl;
std::cout << mt[mt] << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IE15VHlwZQp7CiAgICBvcGVyYXRvciBzaXplX3QoKXtyZXR1cm4gMDt9CiAgICBNeVR5cGUgJm9wZXJhdG9yW10oc2l6ZV90KXtyZXR1cm4qdGhpczt9Cn07CgppbnQgbWFpbigpCnsKICAgIGludCBhW10gPSB7MSwgMn0sIGIgPSAwOwogICAgTXlUeXBlIG10OwogICAgc3RkOjpjb3V0IDw8IG10W2FdIDw8IHN0ZDo6ZW5kbDsKICAgIC8vc3RkOjpjb3V0IDw8IGJbbXRdIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCBtdFttdF0gPDwgc3RkOjplbmRsOwp9Cg==