18 #ifndef __TBB_tbb_hash_compare_impl_H 19 #define __TBB_tbb_hash_compare_impl_H 24 namespace interface5 {
28 template<
typename Key,
typename Hasher,
typename Key_equality>
45 bool operator()(
const Key& key1,
const Key& key2)
const {
61 __TBB_DEPRECATED_MSG(
"tbb::tbb_hasher is deprecated, use std::hash") inline
size_t tbb_hasher( const T& t ) {
66 size_t const h = reinterpret_cast<size_t>( ptr );
69 template<
typename E,
typename S,
typename A>
70 __TBB_DEPRECATED_MSG(
"tbb::tbb_hasher is deprecated, use std::hash") inline
size_t tbb_hasher( const std::basic_string<E,
S,A>&
s ) {
72 for(
const E* c =
s.c_str(); *c; ++c )
76 template<
typename F,
typename S>
77 __TBB_DEPRECATED_MSG(
"tbb::tbb_hasher is deprecated, use std::hash") inline
size_t tbb_hasher( const std::pair<F,
S>&
p ) {
78 return tbb_hasher(
p.first) ^ tbb_hasher(
p.second);
82 using interface5::tbb_hasher;
85 template<
typename Key>
91 size_t operator()(
const Key&
key)
const 93 return tbb_hasher(
key);
98 template<
typename Key>
100 static size_t hash(
const Key& a ) {
return tbb_hasher(a); }
101 static bool equal(
const Key& a,
const Key& b ) {
return a == b; }
size_t operator()(const Key &key) const
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function h
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark S
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle * key
A template to select either 32-bit or 64-bit constant as compile time, depending on machine word size...
class __TBB_DEPRECATED_MSG("tbb::tbb_hash is deprecated, use std::hash") tbb_hash
bool operator()(const Key &key1, const Key &key2) const
void const char const char int ITT_FORMAT __itt_group_sync p
__TBB_DEPRECATED_MSG("tbb::tbb_hasher is deprecated, use std::hash") inline size_t tbb_hasher(const T &t)
Hasher functions.
static size_t hash(const Key &a)
static bool equal(const Key &a, const Key &b)
void const char const char int ITT_FORMAT __itt_group_sync s
Key_equality my_key_compare_object
hash_compare that is default argument for concurrent_hash_map
hash_compare(Hasher a_hasher, Key_equality a_keyeq)
hash_compare(Hasher a_hasher)
static const size_t hash_multiplier
Hash multiplier.