http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57419
--- Comment #2 from David Krauss <potswa at mac dot com> --- I guess the proper terminology would be taking its pointer. Nonstatic members don't really have addresses. Anyway what I was doing was determining the argument of a functor with one operator() overload using &ftor::operator() . Calling or otherwise referencing a deleted function does not result in substitution failure; it results in an error. Access control applies to the name rather than the referent so it should stop before it sees the =delete definition. This makes sense because the inaccessible name is part of the immediate context of the declaration under substitution but =delete is not.