Home | History | Annotate | Download | only in drs

Lines Matching defs:typename

7   template<typename R, typename A> void f(R (&)(A)) {}
15 template<typename T> void operator+(T, T);
27 template<typename T> void f() {
28 typename T::template operator+<int> a; // expected-error {{typename specifier refers to a non-type template}} expected-error +{{}}
38 template<typename T> class operator&<T*> {}; // expected-error +{{}}
39 template<typename T> class T::operator& {}; // expected-error +{{}}
40 template<typename T> class S::operator&<T*> {}; // expected-error +{{}}
105 template<typename T> struct X {};
115 template<typename T> using T1 = Y;
117 template<typename T> using T2 = Y;
123 template<typename T> using T2 = T;
134 template<typename A> struct R {};
136 template<typename A> using R = Q::R<int>;
198 template<typename T> struct A {
199 template<typename U> struct B {};
201 template<typename T> struct C : public A<T>::template B<T> {
245 template<typename> struct X {};
290 template<typename T> void g(T t) { f(t); }
294 template<typename> struct I { friend bool operator==(const I&, const I&); };
302 template<typename T> operator T&();
339 template<typename> struct C { A a; }; // expected-error {{incomplete}}
345 template<typename T> struct A : B {
378 template<typename T> void f() {
420 template<typename T> void f(T (*)[1]);
421 template<typename T> int &f(...);
458 template<typename T> A<sizeof(f(T()))> make_A();
498 template<typename T> struct A {
499 template<typename U> struct B {};
502 template<typename T> struct C : public A<T>::B<T> { // expected-error {{use 'template'}}
520 template <class T> void f(T t) { typename T::X x; } // expected-error {{refers to non-type member 'X'}}
577 template<typename R, typename A> void foo(E, R (*)(A)); // expected-note 2{{couldn't infer template argument 'R'}}
580 template<typename T> void arg(T);
581 template<typename T> int arg(T) = delete; // expected-note {{here}} expected-error 0-1{{extension}}
624 template<typename T> void h1(T = 0); // expected-note {{couldn't infer}}
625 template<typename T> void h2(T, T = 0);
633 template<typename T> int tmpl(T);
634 template<typename R, typename A> void i1(R (*)(A)); // expected-note 3{{couldn't infer}}
635 template<typename R, typename A> void i2(R, A, R (*)(A)); // expected-note {{not viable}}
654 template<typename T> struct is_int;
658 template<typename T> int f(T (*p)(T)) { is_int<T>(); }
665 template<typename T> int f(T, T (*p)(T)) { is_int<T>(); }
758 template<typename T> struct A {
761 template<typename T> void A<T>::f() {} // expected-error {{does not match}}
764 template<typename T> void f();
766 template<typename T> void B::f() const {} // expected-error {{does not match}}
835 template<typename T, T> struct S {}; // expected-note {{here}}
836 template<typename T> int f(S<T, T()> *); // expected-error {{function type}}
837 //template<typename T> int g(S<T, (T())> *); // FIXME: crashes clang
838 template<typename T> int g(S<T, true ? T() : T()> *); // expected-note {{cannot have type 'dr368::X'}}
847 template<typename T> struct X {
851 template<typename T> struct Y {};
855 template<typename T,
856 template<typename> class T1,
857 template<typename> class T2> struct Z1 :
859 T2<typename T1<T>::Type> {}; // expected-error {{protected}}
861 template<typename T,
862 template<typename> class T1,
863 template<typename> class T2> struct Z2 :
864 T2<typename T1<T>::Type>, // expected-error {{protected}}
876 template<typename T> struct A {
877 typename T::Type t; // expected-error {{private}}
888 template<typename T> struct B {};
889 template<typename U> struct C : U, B<typename U::N> {}; // expected-error {{protected}}
890 template<typename U> struct D : B<typename U::N>, U {}; // expected-error {{protected}}
927 template<typename T> void f();
928 template<typename T> struct A { void f(); };
973 typename A::T t;
974 typename dr382::A a;
979 typename A b; // expected-error {{expected a qualified name}}
992 template<typename T> struct Base {};
993 template<typename T> struct X {
1003 template<typename T> int *operator+(T, unsigned);
1026 template<typename T> class number {
1039 template <typename T> class number {
1062 template<typename> struct T {};
1168 template<typename T>
1174 template<typename T> A<T>::~A() { T::error; } // expected-error {{cannot be used prior to}}
1175 template<typename T> void A<T>::f() { T::error; } // ok, not odr-used
1197 template<typename T>
1210 template <typename T, int N>(&operator T())[N]; // expected-error {{cannot specify any part of a return type}}
1211 template <typename T, int N> operator(T (&)[N])(); // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error +{{}}
1212 template <typename T> operator T *() const { return 0; }
1213 template <typename T, typename U> operator T U::*() const { return 0; }
1214 template <typename T, typename U> operator T (U::*)()() const { return 0; } // expected-error +{{}}
1223 operator typename ptr_mem_fun_t<T, U>::type() const { // expected-note {{couldn't infer}}
1229 template <typename T> using id = T; // expected-error 0-1{{extension}}
1232 template <typename T, int N> operator id<T[N]> &();
1233 template <typename T, typename U> operator id<T (U::*)()>() const;
1262 template <typename T> void f(X<T::I> *) {}
1263 template <typename T> void f(X<T::J> *) {}
1270 template <class T> void f(typename T::Y *) {} // expected-note 2{{substitution failure}}