Advertisement
Rapptz

Untitled

Sep 29th, 2014
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. template<EqualityComparable T>
  2. void f(const T& x, const T& y) {
  3.     if(x == y) {
  4.         std::cout << "stuff\n";
  5.     }
  6. }
  7.  
  8. template<Comparable T>
  9. void f(const T& x, const T& y) {
  10.     if(x > y) {
  11.         std::cout << "other\n";
  12.     }
  13. }
  14.  
  15. template<typename T>
  16. void f(const T& x, const T& y) {
  17.     std::cout << "!!\n";
  18. }
  19.  
  20. // compared to:
  21.  
  22. template<typename T>
  23. void f(const T& x, const T& y) {
  24.     static if(EqualityComparable<T>()) {
  25.         if(x == y) {
  26.             std::cout << "stuff\n";
  27.         }
  28.     }
  29.     else static if(Comparable<T>()) {
  30.         if(x > y) {
  31.             std::cout << "other\n";
  32.         }
  33.     }
  34.     else {
  35.         std::cout << "!!\n";
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement