40 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s2// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s3// expected-no-diagnostics4 5namespace 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 >= 201103L18namespace 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 33namespace 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#endif40