1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s 2 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 3 // expected-no-diagnostics 4 5 namespace OrderWithStaticMember { 6 struct A { 7 template<class T> int g(T**, int=0) { return 0; } 8 template<class T> static int g(T*) { return 1; } 9 }; 10 void f() { 11 A a; 12 int **p; 13 a.g(p); 14 } 15 } 16 17 #if __cplusplus >= 201103L 18 namespace OperatorWithRefQualifier { 19 struct A { }; 20 template<class T> struct B { 21 template<class R> int &operator*(R&) &&; 22 }; 23 24 template<class T, class R> float &operator*(T&&, R&); 25 void test() { 26 A a; 27 B<A> b; 28 float &ir = b * a; 29 int &ir2 = B<A>() * a; 30 } 31 } 32 33 namespace PR17075 { 34 template <typename T> struct V {}; 35 struct S { template<typename T> S &operator>>(T &t) = delete; }; 36 template<typename T> S &operator>>(S &s, V<T> &v); 37 void f(S s, V<int> v) { s >> v; } 38 } 39 #endif 40