summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/expr3.C
blob: c7269f130fd4888398aea4333eb05f9146ade2bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// { dg-do assemble  }

template <int I>
struct S {};

template <int J>
void foo(S<J - 1>);

template <class T>
void baz(S<sizeof(T)>);

template <int J>
void fun(S<J>, S<J * 2>);

void bar()
{
  foo<5>(S<4>()); // OK - 4 is 5 - 1.
  baz<int>(S<sizeof(int)>()); // OK
  fun(S<4>(), S<8>()); // OK - deduce J from first argument.
}