diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-12-17 11:59:07 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-12-17 14:03:00 +0000 |
commit | 8cdca5f9c706af118390489efc94336f6214f515 (patch) | |
tree | f1c39c2a1e3ff6dffcb2054b7f83ba6cc2eddec4 | |
parent | f5feee6adc8350a292c235eb21e31a5082350d94 (diff) | |
download | gcc-8cdca5f9c706af118390489efc94336f6214f515.zip gcc-8cdca5f9c706af118390489efc94336f6214f515.tar.gz gcc-8cdca5f9c706af118390489efc94336f6214f515.tar.bz2 |
libstdc++: Move std::hash<std::thread::id> to <bits/std_thread.h>
This makes the hash function available without including the whole of
<thread>, which is needed for <barrier>.
libstdc++-v3/ChangeLog:
* include/bits/std_thread.h (hash<thread::id>): Move here,
from ...
* include/std/thread (hash<thread::id>): ... here.
-rw-r--r-- | libstdc++-v3/include/bits/std_thread.h | 12 | ||||
-rw-r--r-- | libstdc++-v3/include/std/thread | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/libstdc++-v3/include/bits/std_thread.h b/libstdc++-v3/include/bits/std_thread.h index 24bd5fb..4810d35 100644 --- a/libstdc++-v3/include/bits/std_thread.h +++ b/libstdc++-v3/include/bits/std_thread.h @@ -38,6 +38,7 @@ #include <exception> // std::terminate #include <iosfwd> // std::basic_ostream #include <tuple> // std::tuple +#include <bits/functional_hash.h> // std::hash #include <bits/invoke.h> // std::__invoke #include <bits/refwrap.h> // not required, but helpful to users #include <bits/unique_ptr.h> // std::unique_ptr @@ -288,6 +289,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // N.B. other comparison operators are defined in <thread> + // DR 889. + /// std::hash specialization for thread::id. + template<> + struct hash<thread::id> + : public __hash_base<size_t, thread::id> + { + size_t + operator()(const thread::id& __id) const noexcept + { return std::_Hash_impl::hash(__id._M_thread); } + }; + namespace this_thread { /// this_thread::get_id diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread index 8d0ede2..10fb9e6 100644 --- a/libstdc++-v3/include/std/thread +++ b/libstdc++-v3/include/std/thread @@ -43,7 +43,6 @@ #endif #include <bits/std_thread.h> // std::thread, get_id, yield -#include <bits/functional_hash.h> // std::hash #ifdef _GLIBCXX_USE_NANOSLEEP # include <cerrno> // errno, EINTR @@ -94,17 +93,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return !(__x < __y); } #endif // __cpp_lib_three_way_comparison - // DR 889. - /// std::hash specialization for thread::id. - template<> - struct hash<thread::id> - : public __hash_base<size_t, thread::id> - { - size_t - operator()(const thread::id& __id) const noexcept - { return std::_Hash_impl::hash(__id._M_thread); } - }; - template<class _CharT, class _Traits> inline basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, thread::id __id) |