I'm reading n4860 now and i have some curiosity about this.
i don't know how to explain it so i will just show an example.
now i'm looking "unordered_set" and the draft said
template<class Key,
class Hash = hash<Key>,
class Pred = equal_to<Key>,
class Allocator = allocator<Key>>
class unordered_set;
and i infer that when i make custom Key class then i should make hash, equal_to, allocator class and fill it to container work rightly.
but i can't find what should be filled in classes.
for example, if i make custom Key class and i have to make Hash class with operator(const Key& key) method, and Pred class with operator(const Key& key1, const Key& key2) method.
and another example, Hash class with operator(const Key& key) should return size_t or may be unsigned long int(?) not like string.
i can find that information with web searching and compiler error message, but i can't find on draft.
does draft has no information about like that? or i miss that information because i don't know how to read it?