libstdc++: [_Hashtable] Add before begin bucket index cache on range insert Add a policy to maintain a cache of the before begin bucket index in the context of range insertion. libstdc++-v3/ChangeLog:     * include/bits/hashtable_policy.h (_CacheBbeginPolicy): New, maintain     a cache.     (_NoCacheBbeginPolicy): New, no cache.     (_ReuseOrAllocNode<>): Inherit _CacheBBeginPolicy.     (_AllocNode<>): Add cache policy template parameter.     (_Map_base<>::operator[]): Adapt, use _NoCacheBBeginPolicy.     (_Insert_base<>__node_gen_type): Replace by...     (_Insert_base<>::__alloc_node_gen_t<>): ...this. Use cache policy as a     template parameter.     (_Insert_base<>::insert): Adapt.     (_Insert_base<>::try_emplace): Adapt.     (_Insert<>::__node_gen_type): Replace by...     (_Insert<>::__alloc_node_gen_t): ...this, use _NoCacheBBeginPolicy.     (_Insert<>::insert): Adapt.     * include/bits/hashtable.h     (_Hashtable<>::__alloc_node_gen_t): Remove.     (_Hashtable<>::__alloc_node_gen_cache_bbegin_t): New.     (_Hashtable<>::__no_cache_bbegin_policy_t): New.     (_Hashtable<>::__cache_bbegin_policy_t): New.     (_Hashtable<>::_CacheBBeginPolicy): Add friend declaration.     (_Hashtable<>::_NoCacheBBeginPolicy): Add friend declaration.     (_Hashtable<>::_M_insert_bucket_begin): Add BBegin policy.     (_Hashtable<>::_M_insert_unique_node): Likewise.     (_Hashtable<>::_M_insert_multi_node): Likewise. Tested under Linux x64. François