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

--- Comment #20 from Jiang An <de34 at live dot cn> ---
(In reply to Jonathan Wakely from comment #11)
> I already reported https://cplusplus.github.io/LWG/issue3653 for the
> std::hash use in <coroutine>. Removing exceptions, typeinfo and coroutines
> is unnecessary and irrelevant to this bug report. Stop using GCC bugzilla
> for your off-topic rants about WG21.
> 
> You have been warned several times now.

Oh. I think pedantic reading of C++20 wording indicates that std::hash was
already made freestanding (by adding of <coroutine>).

https://timsong-cpp.github.io/cppwp/n4868/compliance#3

> [...] The other headers listed in this table shall meet the same
> requirements as for a hosted implementation.

(where <coroutine> is such a header)

C++20 [unord.hash]/2 also indicated that std::hash is also available in other
headers.

https://timsong-cpp.github.io/cppwp/n4868/unord.hash#2

> [...]
> Each header that declares the template hash provides enabled
> specializations of hash for nullptr_­t and all cv-unqualified arithmetic,
> enumeration, and pointer types.
> [...]

So IIUC C++20 wording was consistent here - std::hash was already freestanding
in C++20 (although not in C++17) and available in <coroutine> in freestanding
mode.

Reply via email to