[indirect.hash] (original) (raw)

20 Memory management library [mem]

20.4 Types for composite class design [mem.composite.types]

20.4.1 Class template indirect [indirect]

20.4.1.10 Hash support [indirect.hash]

template<class T, class Allocator> struct hash<indirect<T, Allocator>>;

The specialization hash<indirect<T, Allocator>>is enabled ([unord.hash]) if and only if hash<T> is enabled.

When enabled for an object i of type indirect<T, Allocator>,hash<indirect<T, Allocator>>()(i) evaluates to either the same value as hash<T>()(*i), if i is not valueless; otherwise to animplementation-defined value.

The member functions are not guaranteed to be noexcept.