fork download
  1. #include<map>
  2.  
  3. class Class1
  4. {
  5. public:
  6. Class1(int id) : id(id) {}
  7.  
  8. private:
  9. int id;
  10. friend struct Class1Compare;
  11. friend struct std::less<Class1>;
  12. };
  13.  
  14. struct Class1Compare
  15. {
  16. bool operator() (const Class1& lhs, const Class1& rhs) const
  17. {
  18. return lhs.id < rhs.id;
  19. }
  20. };
  21.  
  22. namespace std
  23. {
  24. template<> struct less<Class1>
  25. {
  26. bool operator() (const Class1& lhs, const Class1& rhs) const
  27. {
  28. return lhs.id < rhs.id;
  29. }
  30. };
  31. }
  32.  
  33. int main() {
  34. std::map<Class1, int, Class1Compare> c2int;
  35. std::map<Class1, int> c2int_2;
  36. return 0;
  37. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
Standard output is empty