#include <iostream>
char f = 0;
struct Bad {
operator char &() { return f; }
Bad *operator&() { return 0; }
};
int main() {
Bad b;
std::cout << (void*)(&f) << "\n";
std::cout << (void*)(&b) << "\n";
std::cout << (void*)(&reinterpret_cast<char &>(b)) << "\n";
std::cout << (void*)(&(char &)b) << "\n";
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmNoYXIgZiA9IDA7CgpzdHJ1Y3QgQmFkIHsKICAgIG9wZXJhdG9yIGNoYXIgJigpIHsgcmV0dXJuIGY7IH0KICAgIEJhZCAqb3BlcmF0b3ImKCkgeyByZXR1cm4gMDsgfQp9OwoKaW50IG1haW4oKSB7CiAgICBCYWQgYjsKICAgIHN0ZDo6Y291dCA8PCAodm9pZCopKCZmKSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8ICh2b2lkKikoJmIpIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgKHZvaWQqKSgmcmVpbnRlcnByZXRfY2FzdDxjaGFyICY+KGIpKSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8ICh2b2lkKikoJihjaGFyICYpYikgPDwgIlxuIjsKfQo=