1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// { dg-do run } template <class T> struct B { }; template <class T> struct A { template <class U, class V> int operator () (U u, V v); template <class U, class V> void operator () (B<U> u, B<V> v) { } }; int main () { A<int> a; B<char> b1; B<short> b2; a (b1, b2); }