1 2 3 4 5 6 7 8 9 10 11 12
// Build don't link: template <int I> struct S {}; template <int J> void foo(S<J + 2>); void bar() { foo(S<3>()); // ERROR - no way to deduce J from this. }