Home | History | Annotate | Download | only in over.match.oper
      1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
      2 // expected-no-diagnostics
      3 
      4 // This is specifically testing the bullet:
      5 // "do not have the same parameter-type-list as any non-template
      6 // non-member candidate."
      7 // The rest is sort of hard to test separately.
      8 
      9 enum E1 { one };
     10 enum E2 { two };
     11 
     12 struct A;
     13 
     14 A operator >= (E1, E1);
     15 A operator >= (E1, const E2);
     16 
     17 E1 a;
     18 E2 b;
     19 
     20 extern A test1;
     21 extern decltype(a >= a) test1;
     22 extern decltype(a >= b) test1;
     23 
     24 template <typename T> A operator <= (E1, T);
     25 extern bool test2;
     26 extern decltype(a <= a) test2;
     27 
     28 extern A test3;
     29 extern decltype(a <= b) test3;