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.

?

Reply via email to