std::hash<std::indirect>
Определён в заголовочном файле <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) | объект-функция хеширования (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/indirect/hash