#include <iostream>
#include <map>
using namespace std;
struct Node
{
int a;
};
// This is not called
bool operator< (const Node &p_node1,const Node &p_node2)
{
printf("\nCALLED OPERATOR OVERLOADING");
return true;
}
int main()
{
using namespace std;
map<Node,int> my_map;
Node n1;
n1.a=55;
my_map[n1]=2; // operator overloading should be called
Node n2;
n2.a=55;
my_map[n2]=3;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5vZGUKICAgIHsKICAgICAgIGludCBhOyAgICAgCgogICAgIH07CgoKICAgIC8vIFRoaXMgaXMgbm90IGNhbGxlZAoKICBib29sIG9wZXJhdG9yPCAoY29uc3QgTm9kZSAmcF9ub2RlMSxjb25zdCBOb2RlICZwX25vZGUyKQogIHsKICAgICAgIHByaW50ZigiXG5DQUxMRUQgT1BFUkFUT1IgT1ZFUkxPQURJTkciKTsKICAgICAgIHJldHVybiB0cnVlOwogIH0KCiAgICBpbnQgbWFpbigpCiAgICB7CiAgICAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOyAgICAgICAgCiAgICAgICBtYXA8Tm9kZSxpbnQ+IG15X21hcDsgICAgICAgIAogICAgICAgTm9kZSBuMTsKICAgICAgIG4xLmE9NTU7CgogICAgICAgbXlfbWFwW24xXT0yOyAvLyBvcGVyYXRvciBvdmVybG9hZGluZyBzaG91bGQgYmUgY2FsbGVkCgoJTm9kZSBuMjsKICAgICAgIG4yLmE9NTU7CgogICAgICAgbXlfbWFwW24yXT0zOwoKICAgICAgIHJldHVybiAwOwogICAgfQ==