https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80564
--- Comment #3 from Eric Fiselier <eric at efcs dot ca> --- Here is an example of why `_Bind::operator()(...) const` must be considered during overload resolution even if the call wrapper itself is not const. ------------------------------ #include <functional> struct Func { template <class ...Args> void operator()(Args&&...) = delete; template <class ...Args> void operator()(Args&&...) const {} }; int main() { Func f; std::bind(f)(); } -------------------------