#include <iostream>
#include <utility>
using namespace std;
typedef std::pair<int, double> MyID;
struct Num {} constexpr num;
auto &operator,(MyID &x, Num)
{
return x.first;
}
auto &operator%(MyID &x, Num)
{
return x.first;
}
auto &numf(MyID &x)
{
return x.first;
}
int main()
{
MyID p{42, 0.5};
cout << (p,num) << endl;
cout << p%num << endl;
cout << numf(p) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHN0ZDo6cGFpcjxpbnQsIGRvdWJsZT4gTXlJRDsKCnN0cnVjdCBOdW0ge30gY29uc3RleHByIG51bTsKCmF1dG8gJm9wZXJhdG9yLChNeUlEICZ4LCBOdW0pCnsKICAgIHJldHVybiB4LmZpcnN0Owp9CgphdXRvICZvcGVyYXRvciUoTXlJRCAmeCwgTnVtKQp7CiAgICByZXR1cm4geC5maXJzdDsKfQoKYXV0byAmbnVtZihNeUlEICZ4KQp7CiAgICByZXR1cm4geC5maXJzdDsKfQoKaW50IG1haW4oKQp7CiAgICBNeUlEIHB7NDIsIDAuNX07CiAgICBjb3V0IDw8IChwLG51bSkgPDwgZW5kbDsKICAgIGNvdXQgPDwgcCVudW0gPDwgZW5kbDsKICAgIGNvdXQgPDwgbnVtZihwKSA8PCBlbmRsOwp9Cg==