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