https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97773
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marxin at gcc dot gnu.org
--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
I have reduced (but invalid test-case) that ICEs:
$ cat r.C
template <typename _Fn, typename _Tuple> void apply(_Fn, _Tuple);
template <typename... T> void hash_combine() noexcept(noexcept((T(), ...)));
int operator0_t {
apply(hash_combine<>, operator0_t);
}
I guess we can fix it in order to make clang++ accept it:
$ clang++ r.C
r.C:2:70: warning: pack fold expression is a C++17 extension
[-Wc++17-extensions]
template <typename... T> void hash_combine() noexcept(noexcept((T(), ...)));
^
r.C:4:37: error: unexpected ';' before '}'
apply(hash_combine<>, operator0_t);
^
r.C:4:3: error: cannot initialize a variable of type 'int' with an rvalue of
type 'void'
apply(hash_combine<>, operator0_t);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
r.C:5:2: error: expected ';' after top level declarator
}
^
;
1 warning and 3 errors generated.
?