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 an implementation-defined value.
The member functions are not guaranteed to be noexcept.