fork(1) download
  1. #include <stdio.h>
  2.  
  3. namespace named
  4. {
  5. template<typename RandomIt>
  6. void sort_it_it(RandomIt first, RandomIt last)
  7. {
  8. (void) last;
  9. (void) (first + 1);
  10. (void) (bool(*first < *first));
  11. // stuff...
  12. }
  13.  
  14. template<typename Container, typename Compare>
  15. void sort_cont_cmp(Container& c, Compare cmp)
  16. {
  17. typename Container::iterator b = c.begin(), e = c.end();
  18. (void) e;
  19. (void) (b + 1);
  20. (void) (bool(cmp(*b, *b)));
  21. // stuff...
  22. }
  23. }
  24.  
  25. namespace overloaded
  26. {
  27. template<typename RandomIt>
  28. void sort(RandomIt first, RandomIt last)
  29. {
  30. puts("sort(RandomIt, RandomIt)");
  31. named::sort_it_it(first, last);
  32. }
  33.  
  34. template<typename Container, typename Compare>
  35. void sort(Container& c, Compare cmp)
  36. {
  37. puts("sort(Container&, Compare)");
  38. named::sort_cont_cmp(c, cmp);
  39. }
  40. }
  41.  
  42. #include <vector>
  43. #include <functional>
  44.  
  45. int main()
  46. {
  47. std::vector<int> v(10, 42);
  48.  
  49. named::sort_it_it(v.begin(), v.end()); // ok (of course)
  50. named::sort_cont_cmp(v, std::less<int>()); // ok (of course)
  51.  
  52. overloaded::sort(v.begin(), v.end()); // ok
  53. overloaded::sort(v, std::less<int>()); // ok too
  54. }
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
sort(RandomIt, RandomIt)
sort(Container&, Compare)