https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113789
--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> --- IOW, this should be accepted in C++23 but isn't (clang++ accepts in C++23): struct AutoPtr { AutoPtr() = default; AutoPtr(AutoPtr&) {} }; template<class T> auto f(T p, int) -> decltype(throw p, 1) = delete; template<class T> void f(T p, long); void g () { f (AutoPtr (), 42); }