brintos

brintos / llvm-project-archived public Read only

0
0
Text · 885 B · db3952a Raw
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