[Bug c++/97420] error: no matching function for call to 'find_if'
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Oct 14 14:08:42 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97420
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2020-10-14
Keywords| |rejects-valid
Ever confirmed|0 |1
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced:
int isspace (int) noexcept;
template<int (& F)(int)> void A() { }
auto p = A<isspace>;
The problem is that the NTTP reference cannot bind to a noexcept function.
It works with a reference to a noexcept function:
template<int (& F)(int) noexcept> void A() { }
It only fails for C++17 and later because the noexcept isn't part of the type
before that.
I think we can consider this a regression, since the same code compiles in
C++14 and with previous versions of GCC.
More information about the Gcc-bugs
mailing list