/llvm-project/clang/test/CXX/temp/temp.names/ |
H A D | p5.cpp | 3 template<typename T> struct A { 4 template<typename U> struct B { 9 template<typename V> struct D; 12 template<typename V> void g(); 15 template<typename V> static int y; 21 template<typename T> 22 template<typename U> 23 struct A<T>::template B<U>::C { }; // expected-error{{'template' cannot be used after a declarative… 25 template<> 26 template<> [all …]
|
/llvm-project/clang/test/CXX/temp/temp.spec/temp.expl.spec/ |
H A D | p16.cpp | 2 template<class T> struct A { 4 template<class X1> void g1(T, X1); 5 template<class X2> void g2(T, X2); 10 template<> void A<int>::f(int); 12 // out of class member template definition 13 template<class T> template<class X1> void A<T>::g1(T, X1) { } in g1() 15 // member template specialization 16 template<> template<class X1> void A<int>::g1(int, X1); 18 // member template specialization 19 template<> template<> [all …]
|
H A D | examples.cpp | 4 template<typename T> struct identity { typedef T type; }; 9 template<typename T> struct C { typedef B type; }; 15 namespace N { template<typename T> struct S { void f(); }; } 17 namespace N { template<> void T::f() {} } in f() 21 template< typename S > 24 template< int > 30 template< typename S > 38 template<> 39 template<> 46 template<typename S> struct C { [all …]
|
H A D | p2-0x.cpp | 16 // -- function template 18 template<typename T> void f0(T) { in f0() 22 template<> void f0(NonDefaultConstructible) { } in f0() 28 template<> void f0(int); 29 template<> void f0(long); 32 template<> void N0::f0(int) { } // okay in f0() 35 template<> void N0::f0(long) { } // expected-error{{does not enclose namespace}} in f0() 38 template<> void N0::f0(double) { } in f0() 41 template<typename T> void f(T); 43 template<> void f(int); // OK (DR727) [all …]
|
H A D | p2-20.cpp | 3 template<typename T> 6 template<typename T> 9 template<> 12 template<typename T> 15 template<typename T> 18 template<> 21 template<typename T> 24 template<> 27 template<typename T> 30 template<> [all...] |
H A D | p2.cpp | 20 // -- function template 22 template<typename T> void f0(T) { in f0() 26 template<> void f0(NonDefaultConstructible) { } in f0() 32 template<> void f0(int); 33 template<> void f0(long); 36 template<> void N0::f0(int) { } // okay in f0() 39 template<> void N0::f0(long) { } // expected-error{{does not enclose namespace}} in f0() 42 template<> void N0::f0(double); 44 template<> void N0::f0(double) { } in f0() 47 template<typename T> void f(T); [all …]
|
/llvm-project/clang/test/CXX/temp/temp.spec/ |
H A D | part.spec.cpp | 5 // used to specify template arguments of the simple-template-id of the 18 template <class T> class TemplatePublicClass {}; 35 template <class T> class TemplateProtectedClass {}; 58 template <class T> class TemplatePrivateClass {}; 77 // template declarations for explicit instantiations 78 template <typename T> class IT1 {}; 79 template <typename T1, typename T2> class IT2 {}; 80 template <int X> class IT3 {}; 81 template <void (TestClass::*)()> class IT4 {}; 82 template <void (*)()> class IT5 {}; [all …]
|
/llvm-project/clang/test/Parser/ |
H A D | cxx-template-decl.cpp | 2 // RUN: %clang_cc1 -fsyntax-only -verify=expected,cpp14 -std=gnu++14 %s -fdelayed-template-parsing -DDELAYED_TEMPLATE_PARSING 8 export class foo { }; // expected-error {{expected template}} 9 template x; // expected-error {{a type specifier is required for all declarations}} \ 11 export template x; // expected-error {{expected '<' after 'template'}} 12 export template<class T> class x0; // expected-warning {{exported templates are unsupported}} 13 template < ; // expected-error {{expected template parameter}} \ 14 // expected-error{{expected ',' or '>' in template-parameter-list}} \ 16 template <in [all...] |
/llvm-project/clang/test/SemaTemplate/ |
H A D | template-id-expr.cpp | 5 template<typename FromCl> 7 template<class ToCl> 11 template<class X, class Y> 12 void isa(const Y &Val) { return isa_impl_cl<Y>::template isa<X>(Val); } in isa() 17 // Implicit template-ids. 18 template<typename T> 20 template<typename U> 23 template<typename U> 33 // Not template-id expressions, but they almost look like it. 34 template<typename F> [all …]
|
H A D | cwg2398.cpp | 4 template<class T, class U = T> class B {}; 5 template<template<class> class P, class T> void f(P<T>); 15 template<typename> struct match; 17 template<template<typename> class t,typename T> struct match<t<T>>; 19 template<template<typename,typename> class t,typename T0,typename T1> 22 template<typename,typename = void> struct other {}; 23 template struc [all...] |
H A D | concepts-out-of-line-def.cpp | 7 template <class T> 17 template <class T, class U> struct S { 21 template <class T, class U> constexpr int S<T, U>::primary() { in primary() 25 template <Concept C, class U> struct S<C, U> { 29 template <class T, class U> 35 template <Concept C, class U> constexpr int S<C, U>::specialization() { in specialization() 39 template <class T, class U> 53 template <class T, class U> struct S { 57 template <class T, class U> enum class S<T, U>::E { Value = PRIMARY }; 59 template <Concep [all...] |
H A D | temp_arg_template.cpp | 4 template<template<typename T> class X> struct A; // #A 5 // expected-note@-1 2{{previous template template parameter is here}} 7 template<template<typename T, int I> class X> struct B; // expected-note{{previous template template parameter is here}} 9 template<template<in [all...] |
H A D | dependent-template-recover.cpp | 2 template<typename T, typename U, int N> 5 … t->f0<U>(); // expected-error{{use 'template' keyword to treat 'f0' as a dependent template name}} in f() 6 …t->f0<int>(); // expected-error{{use 'template' keyword to treat 'f0' as a dependent template name… in f() 8 …tor+<U const, 1>(1); // expected-error{{use 'template' keyword to treat 'operator +' as a dependen… in f() 9 …t->f1<int const, 2>(1); // expected-error{{use 'template' keyword to treat 'f1' as a dependent tem… in f() 10 …t->f1<3, int const>(1); // expected-error{{missing 'template' keyword prior to dependent template … in f() 12 …T::getAs<U>(); // expected-error{{use 'template' keyword to treat 'getAs' as a dependent template … in f() 13 …t->T::getAs<U>(); // expected-error{{use 'template' keyword to treat 'getAs' as a dependent templa… in f() 15 …(*t).f2<N>(); // expected-error{{missing 'template' keyword prior to dependent template name 'f2'}} in f() 16 …(*t).f2<0>(); // expected-error{{missing 'template' keyword prior to dependent template name 'f2'}} in f() [all …]
|
H A D | class-template-decl.cpp | 3 template<typename T> class A {}; 6 template<typename T> class B {}; 7 template<typename T> class A<T *>; 8 template<> class A<int[1]>; 9 template class A<int[2]>; 10 template<typename T> class B<T *>; 11 template<> class B<int[1]>; 12 template class B<int[2]>; 16 template<typename T> class C; 20 template<typenam [all...] |
H A D | default-arguments.cpp | 4 template<typename T, int N = 2> struct X; // expected-note{{template is declared here}} 9 X<> *x3; // expected-error{{too few template arguments for class template 'X'}} 11 template<typename U = float, int M> struct X; 15 template<typename T = int> struct Z { }; 16 template struct Z<>; 19 template<class T> struct a { }; 20 template<> struct a<int> { static const bool v = true; }; 22 template<clas [all...] |
/llvm-project/clang/test/SemaCXX/ |
H A D | cxx1y-variable-templates_in_class.cpp | 12 template<typename T> CONST T wrong; // expected-error {{non-static data member 'wrong' cannot be declared as a template}} 13 template<typename T> CONST T wrong_init = 5; // expected-error {{non-static data member 'wrong_init' cannot be declared as a template}} 14 template<typename T, typename T0> static CONST T right = T(100); 15 template<typename T> static CONST T right<T,int> = 5; 16 template<typename T> CONST int right<int,T>; // expected-error {{non-static data member 'right' cannot be declared as a template}} 17 template<typename T> CONST float right<float,T> = 5; // expected-error {{non-static data member 'right' cannot be declared as a template}} [all...] |
H A D | cxx1y-variable-templates_top_level.cpp | 11 template<typename T> 14 template<typename T> 15 CONST T cpi = T(3.1415926535897932385); // expected-note {{template is declared here}} 17 template<typename T> extern CONST T vc; 32 // template arguments are not deduced for uses of variable templates. in no_deduce() 33 int ipi = pi; // expected-error {{use of variable template 'pi' requires template arguments}} in no_deduce() 34 int icpi = cpi; // expected-error {{use of variable template 'cpi' requires template arguments}} in no_deduce() 37 template<typename T> 42 template<typename T> 63 … ipi = pi<int>; // expected-error {{'pi' does not name a template but is followed by template arg… in foo() [all …]
|
H A D | cxx20-ctad-type-alias.cpp | 4 template <typename T> 6 template <typename U> 13 template <typename X, typename Y> 19 template <typename X, typename Y> 21 template <typename U, typename V> 30 template <typename T, class> 36 template <class T> 43 template <class T> 49 template <class T> 52 template <clas [all...] |
/llvm-project/clang/test/PCH/ |
H A D | cxx-templates.h | 3 template <typename T1, typename T2> 6 template <typename T1, typename T2> 12 template <typename T> 17 template <> 22 template <int x> 25 template <typename T, int y> 36 template <typename T> 43 template <typename T> 49 int y = T::template my_templf<int>(0); 57 template<typename T, typename A1> [all …]
|
/llvm-project/clang/test/CXX/temp/temp.param/ |
H A D | p11-0x.cpp | 3 // If a template-parameter of a class template or alias template has a default 4 // template-argument, each subsequent template-parameter shall either have a 5 // default template-argument supplied or be a template parameter pack. 6 template<typename> struct vector; 8 template<typename T = int, typename> struct X3t; // expected-error{{template parameter missing a de… 9 template<typename T = int, typename> using A3t = int; // expected-error{{template parameter missing… 10 template<int V = 0, int> struct X3nt; // expected-error{{template parameter missing a default argum… 11 template<int V = 0, int> using A3nt = int; // expected-error{{template parameter missing a default … 12 template<template<class> class M = vector, template<class> class> struct X3tt; // expected-error{{t… 13 template<template<class> class M = vector, template<class> class> using A3tt = int; // expected-err… [all …]
|
/llvm-project/libcxx/include/ |
H A D | type_traits | 20 template <class T, T v> struct integral_constant; 24 template <bool B> // C++14 30 template <bool, class T = void> struct enable_if; 31 template <bool, class T, class F> struct conditional; 34 template <class T> struct is_void; 35 template <class T> struct is_null_pointer; // C++14 36 template <class T> struct is_integral; 37 template <class T> struct is_floating_point; 38 template <class T> struct is_array; 39 template <clas [all...] |
/llvm-project/clang/test/CXX/expr/expr.prim/expr.prim.req/ |
H A D | equivalence.cpp | 3 template<typename T, typename U> constexpr bool is_same_v = false; 4 template<typename T> constexpr bool is_same_v<T, T> = true; 6 template<typename T> struct identity { using type = T; }; 7 template<typename T> using identity_t = T; 10 template<typename T> requires requires { typename identity_t<T>; } 12 template<typename U> requires requires { typename identity_t<U>; } // expected-note{{previous templ… 14 template<typename T> requires requires { typename identity_t<T*>; } // expected-error{{requires cla… 16 template<typename T> requires requires { typename ::identity_t<T>; } 19 template<typename Y> requires requires { typename identity<Y>::type; } 21 template<typename U> requires requires { typename identity<U>::type; } [all …]
|
/llvm-project/clang/test/CXX/temp/temp.decls/temp.variadic/ |
H A D | parameter-matching.cpp | 3 // Check for template type parameter pack (mis-)matches with template 5 template<typename ...T> struct X0t; 6 template<typename ...T> struct X0t; 8 template<typename ...T> struct X1t; // expected-note{{previous template type parameter pack declare… 9 template<typename T> struct X1t; // expected-error{{template type parameter conflicts with previous… 11 template<typename T> struct X2t; // expected-note{{previous template type parameter declared here}} 12 template<typename ...T> struct X2t; // expected-error{{template type parameter pack conflicts with … 14 template<template<typename ...T> class> struct X0t_intt; 15 template<template<typename ...T> class> struct X0t_intt; 17 template<template<typename ...T> class> struct X1t_intt; // expected-note{{previous template type p… [all …]
|
/llvm-project/clang/test/CXX/temp/temp.res/temp.local/ |
H A D | p6.cpp | 1 // RUN: %clang_cc1 -verify %s -fcxx-exceptions -std=c++1y -Wno-error=strict-primary-template-shadow 5 template<typename T, // expected-note {{declared here}} 6 … typename T> struct X {}; // expected-error {{declaration of 'T' shadows template parameter}} 8 template<typename T> struct Y { // expected-note 18{{declared here}} 9 …template<typename T> struct A {}; // expected-error {{declaration of 'T' shadows template paramete… 12 …template<typename> struct T {}; // expected-error {{declaration of 'T' shadows template parameter}} 15 template<typename> void T(); // expected-error {{declaration of 'T' shadows template parameter}} 18 struct T {}; // expected-error {{declaration of 'T' shadows template parameter}} 21 typedef int T; // expected-error {{declaration of 'T' shadows template parameter}} 24 using T = int; // expected-error {{declaration of 'T' shadows template parameter}} [all …]
|
/llvm-project/clang/test/Frontend/ |
H A D | ftime-report-template-decl.cpp | 3 // RUN: %clang_cc1 %s -S -triple=x86_64 -mllvm -sort-timers=0 -o - -fdelayed-template-parsing -DDELAYED_TEMPLATE_PARSING -ftime-report 2>&1 | FileCheck %s 5 // Template function declarations 6 template <typename T> 8 template <typename T, typename U> 11 // Template function definitions. 12 template <typename T> in foo() 15 // Template class (forward) declarations 16 template <typename T> 18 template <typename T, typename U> 20 template <typenam [all...] |