Namespaces
Variants

std:: hash <std::indirect>

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
Определено в заголовке <memory>
template < class T, class Allocator >
struct hash < std :: indirect < T, Allocator >> ;
(начиная с C++26)

Частичная специализация std::hash для std::indirect позволяет пользователям получать хеши объектов, владеемых indirect объектами.

Специализация std:: hash < std :: indirect < T, Allocator >> включена если std:: hash < T > включена, и отключена в противном случае.

Если включено, для объекта obj типа std :: indirect < T, Allocator > , std:: hash < std :: indirect < T, Allocator >> ( ) ( obj ) вычисляется как:

  • std:: hash < T > ( ) ( * obj ) , если obj не является пустым .
  • Определяемое реализацией значение, если obj является пустым.

Функции-члены этой специализации не гарантированно являются noexcept , потому что хэш-функция для T может генерировать исключение.

Пример

Смотрите также

(C++11)
функциональный объект хеш-функции
(шаблон класса)