[Bug c++/78361] New: [7 regression][c++1z] std::__is_referenceable doesn't handle noexcept function types
lucdanton at free dot fr
gcc-bugzilla@gcc.gnu.org
Tue Nov 15 08:05:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78361
Bug ID: 78361
Summary: [7 regression][c++1z] std::__is_referenceable doesn't
handle noexcept function types
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: lucdanton at free dot fr
Target Milestone: ---
Created attachment 40042
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40042&action=edit
untested patch
Currently on trunk __is_referenceable doesn't seem to handle noexcept function
types. This then carries over to e.g. std::add_pointer and then in turn to
std::decay_t, ultimately causing regressions for code like
std::make_tuple(std::free).
It might be instructive to grep for 6 dots (e.g. '\.\{6\}') to try and catch
all
those partial specializations that handle function types, and update them.
If I ape what is_function does that fixes the regression on my end, but other
than that I have not run the tests and in any case I don't know if it's the
right fix. It's attached as a patch.
More information about the Gcc-bugs
mailing list