This is a simple typo fix from iter_value_t to iter_val_t. In [unord.map.overview], edit as follows: template<class InputIterator, class Hash = hash<iter_key_t<InputIterator>>, class Pred = equal_to<iter_key_t<InputIterator>>, class Allocator = allocator<iter_to_alloc_t<InputIterator>>> unordered_map(InputIterator, InputIterator, typename see below ::size_type = see below , Hash = Hash(), Pred = Pred(), Allocator = Allocator()) -> unordered_map<iter_key_t<InputIterator>, iter_val<del>ue</del>_t<InputIterator>, Hash, Pred, Allocator>; In [unord.multimap.overview], edit as follows: template<class InputIterator, class Hash = hash<iter_key_t<InputIterator>>, class Pred = equal_to<iter_key_t<InputIterator>>, class Allocator = allocator<iter_to_alloc_t<InputIterator>>> unordered_multimap(InputIterator, InputIterator, typename see below ::size_type = see below , Hash = Hash(), Pred = Pred(), Allocator = Allocator()) -> unordered_multimap<iter_key_t<InputIterator>, iter_val<del>ue</del>_t<InputIterator>, Hash, Pred, Allocator>;