// PR c++/59705 // { dg-do compile { target c++11 } } struct HasIter { typedef int * const_iterator; }; struct NoIter { }; template constexpr bool foo(const T &, typename T::const_iterator *) { return true; } template constexpr bool foo(const T &, ...) { return false; } HasIter has_iter; NoIter no_iter; static_assert (!foo(no_iter, 0), ""); static_assert (foo(has_iter, 0), ""); static_assert (foo(has_iter, 0), "");