#include <iostream>
using namespace std;
struct smth
{
template <int i> struct key_t {};
int x; int get(key_t<1>) { return this->x; }
double y; double get(key_t<2>) { return this->y; }
};
int main()
{
smth s = {1, 2.5};
cout << s.x << ' ' << s.y << endl;
cout << s.get(smth::key_t<1>()) << ' ' << s.get(smth::key_t<2>()) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBzbXRoCnsKCXRlbXBsYXRlIDxpbnQgaT4gc3RydWN0IGtleV90IHt9OwoJCglpbnQgeDsgaW50IGdldChrZXlfdDwxPikgeyByZXR1cm4gdGhpcy0+eDsgfQoJZG91YmxlIHk7IGRvdWJsZSBnZXQoa2V5X3Q8Mj4pIHsgcmV0dXJuIHRoaXMtPnk7IH0KfTsKCmludCBtYWluKCkKewoJc210aCBzID0gezEsIDIuNX07CgkKCWNvdXQgPDwgcy54IDw8ICcgJyA8PCBzLnkgPDwgZW5kbDsKCWNvdXQgPDwgcy5nZXQoc210aDo6a2V5X3Q8MT4oKSkgPDwgJyAnIDw8IHMuZ2V0KHNtdGg6OmtleV90PDI+KCkpIDw8IGVuZGw7CgkKCXJldHVybiAwOwp9