Home | History | Annotate | Download | only in temp.deduct.call
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 // expected-no-diagnostics
      3 template<typename T> struct A { };
      4 
      5 // bullet 1
      6 template<typename T> A<T> f0(T* ptr);
      7 
      8 void test_f0_bullet1() {
      9   int arr0[6];
     10   A<int> a0 = f0(arr0);
     11   const int arr1[] = { 1, 2, 3, 4, 5 };
     12   A<const int> a1 = f0(arr1);
     13 }
     14 
     15 // bullet 2
     16 int g0(int, int);
     17 float g1(float);
     18 
     19 void test_f0_bullet2() {
     20   A<int(int, int)> a0 = f0(g0);
     21   A<float(float)> a1 = f0(g1);
     22 }
     23 
     24 // bullet 3
     25 struct X { };
     26 const X get_X();
     27 
     28 template<typename T> A<T> f1(T);
     29 
     30 void test_f1_bullet3() {
     31   A<X> a0 = f1(get_X());
     32 }
     33