In the following code ```cpp template <typename T> void f() {} template <typename T, typename U> void f() {} template <typename T> void g() { f<T>(); } ``` Here, even though `f` is unresolved, it cannot match the second case because `U` doesn't have a default value.