Figure 3: Template class _Hmap_traits

        // TEMPLATE CLASS _Hmap_traits
template<class _K, class _Ty, class _Pr, class _Ax, bool _Mfl>
    class _Hmap_traits {
public:
    typedef _K key_type;
    typedef pair<const _K, _Ty> value_type;
    typedef _Pr key_compare;
    typedef _Ax::template<> rebind<value_type>::other
        allocator_type;
    enum {_Multi = _Mfl};
    _Hmap_traits()
        : comp()
        {}
    _Hmap_traits(_Pr _Parg)
        : comp(_Parg)
        {}
    class value_compare
        : public binary_function<value_type, value_type, bool> {
        friend class _Hmap_traits<_K, _Ty, _Pr, _Ax, _Mfl>;
    public:
        bool operator()(const value_type& _X,
            const value_type& _Y) const
            {return (comp(_X.first, _Y.first)); }
        value_compare(key_compare _Pred)
            : comp(_Pred) {}
    protected:
        key_compare comp;
        };
    struct _Kfn {
        const _K& operator()(const value_type& _X) const
            {return (_X.first); }
        };
    _Pr comp;
    };
//End of File