|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20) | ||||
| Helper classes | ||||
hash<std::thread::id> | ||||
(C++23) |
Defined in header <thread> | ||
template<>struct hash<std::thread::id>; | (since C++11) | |
The template specialization ofstd::hash for thestd::thread::id class allows users to obtain hashes of the identifiers of threads.
| This section is incomplete Reason: example that uses hash meaningfully |
#include <chrono>#include <iostream>#include <thread>#include <vector>usingnamespace std::chrono_literals; void foo(){std::this_thread::sleep_for(10ms);} int main(){std::vector<std::thread> v;for(int n=0; n<4;++n) v.emplace_back(foo); std::hash<std::thread::id> hasher;for(auto& t: v){std::cout<<"thread "<< t.get_id()<<" hashes to "<< hasher(t.get_id())<<'\n'; t.join();}}
Possible output:
thread 139786440144640 hashes to 8905351942358389397thread 139786431751936 hashes to 9222844670065909738thread 139786423359232 hashes to 18199000599186780501thread 139786414966528 hashes to 15386662774029264672
(C++11) | hash function object (class template)[edit] |