[Bug c++/97778] return type not deduced with gcc but get deduced with clang

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Nov 10 13:24:48 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97778

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |DUPLICATE
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced:

template <typename T>
struct hash
{
  auto operator()(T) const noexcept
  {
    return 0;
  }
};

template <typename ...T>
auto hash_combine(T&& ...) noexcept
{
  return 0;
}

template<typename... T>
struct tuple
{
};

template<typename F, typename... T>
auto
apply(F, tuple<T...>)
{
}

template <typename ...T>
struct hash<tuple<T...>>
{
  auto operator()(tuple<T...> t) const
  {
    return apply(hash_combine<T...>, t);
  }
};

int main()
{
  using T = tuple<int>;
  hash<T> h;
  T t;
  h(t);
}

Confirmed as fixed by r11-2420 which fixed PR c++/64194

*** This bug has been marked as a duplicate of bug 64194 ***


More information about the Gcc-bugs mailing list