http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58569
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Daniel Krügler from comment #3) > I don't see a good > reasons why std::function<foo(...)> should check std::is_convertible<foo, > foo> when instantiating the class template. It's done to check the constraint imposed by the resolution of http://cplusplus.github.io/LWG/lwg-active.html#2132