https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110774
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Actually 0 vs nullptr is the same: ``` template<typename T> struct A { typedef char* type; }; template<typename T> char* f1(T, char*); // #1 template<typename T> long* f1(T*, typename A<T>::type*); // #2 long* p1 = f1(p1, nullptr); // #3 ``` That is the above also gets ambiguous.