libstdc++: Remove std::bind_front specialization for no bound args
commitf1e87aee5b7023fb4f5791c6869db705e18c2705
authorPatrick Palka <ppalka@redhat.com>
Tue, 12 Sep 2023 15:23:08 +0000 (12 11:23 -0400)
committerPatrick Palka <ppalka@redhat.com>
Tue, 12 Sep 2023 15:23:08 +0000 (12 11:23 -0400)
tree01778265bfb6fd8140c995b3617fcd75c79540ee
parent3e4afea3b192c205c9a9da99f4cac65c68087eaf
libstdc++: Remove std::bind_front specialization for no bound args

The specialization used by std::bind_front when there are no bound args
(added by r13-4214-gcbd05ca5ab1231) seems to be mostly obsoleted by
r13-5033-ge2eab3c4edb6aa which added [[no_unique_address]] to the main
template's data members.  What's left to consider is the compile time
advantage of the specialization, which doesn't seem huge since it just
avoids using tuple<> (which is an explicit specialization anyway) and
expanding some pack expansions with an empty argument pack.  So this
patch removes this specialization; this means we have one less spot to
fix the PR libstdc++/111327 perfect forwarding bug.

libstdc++-v3/ChangeLog:

* include/std/functional (_Bind_front0): Remove.
(_Bind_front_t): Adjust.
libstdc++-v3/include/std/functional