summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/expr3.C
blob: 4d77370e1864f28d5f8ab8406cb54dbfa9e41e33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Build don't link:

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.
}