Spec-Zone.ru › C++

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 может вызвать исключение.

Пример

См. также

hash
(C++11)
объект-функция хеширования
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/indirect/hash

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API