[#bsl-unordered_set-0b4] = xref:bsl.adoc[bsl]::xref:bsl/unordered_set-0d2d.adoc[unordered_set<KEY, HASH, EQUAL, ALLOCATOR>] :relfileprefix: ../ :mrdocs: Deduce the template parameter `KEY` from the `value_type` of the initializer_list supplied to the constructor of `unordered_set`. Deduce the template parameters `HASH`, EQUAL and `ALLOCATOR` from the other parameters passed to the constructor. This deduction guide does not participate unless: (1) the supplied `HASH` is invocable with a `KEY`, (2) the supplied `EQUAL` is invocable with two `KEY`s, and (3) the supplied allocator meets the requirements of a standard allocator. == Synopsis Declared in `<bslstl_unorderedset.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class KEY, class HASH = xref:bsl/hash-06.adoc[bsl::hash<KEY>], class EQUAL = xref:bsl/equal_to-0d.adoc[bsl::equal_to<KEY>], class ALLOCATOR = xref:bsl/allocator-0df.adoc[bsl::allocator<KEY>]> requires std::is_invocable_v<HASH, const KEY&> && std::is_invocable_v<EQUAL, const KEY&, const KEY&> && bsl::IsStdAllocator_v<ALLOCATOR> xref:bsl/unordered_set-0d2d.adoc[unordered_set<KEY, HASH, EQUAL, ALLOCATOR>]( std::initializer_list<KEY>, bsl::allocator_traits<ALLOCATOR>::size_type, HASH, EQUAL, ALLOCATOR) -> xref:bsl/unordered_set-0d2d.adoc[unordered_set<KEY, HASH, EQUAL, ALLOCATOR>]; ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#