1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// { dg-do assemble } template <int I, int J, int K> struct S {}; template <int I, int J> struct S<I, J, 2> : public S<I, I, I>, S<J, J, J> {}; template <int I, int J, int K> void f(S<I, J, K>, S<I, I, I>); // { dg-message "note" } void g() { S<0, 0, 0> s0; S<0, 1, 2> s2; f<0>(s0, s2); f(s0, s2); // { dg-error "" } no matching function // { dg-message "candidate" "candidate note" { target *-*-* } 17 } }