Any class dic_impl that provides the following operations can be used as actual implementation parameter for the _dictionary< K,I,dic_impl> and the _d_array< I,E,dic_impl> data types (cf. sections Dictionaries and 6.5).
typedef ... dic_impl_item; class dic_impl { virtual int cmp(GenPtr, GenPtr) const = 0; virtual int int_type() const = 0; virtual void clear_key(GenPtr&) const = 0; virtual void clear_inf(GenPtr&) const = 0; virtual void copy_key(GenPtr&) const = 0; virtual void copy_inf(GenPtr&) const = 0; public: dic_impl(); dic_impl(const dic_impl&); virtual ~dic_impl(); dic_impl& operator=(const dic_impl&); GenPtr key(dic_impl_item) const; GenPtr inf(dic_impl_item) const; dic_impl_item insert(GenPtr,GenPtr); dic_impl_item lookup(GenPtr) const; dic_impl_item first_item() const; dic_impl_item next_item(dic_impl_item) const; dic_impl_item item(void* p) const { return dic_impl_item(p); } void change_inf(dic_impl_item,GenPtr); void del_item(dic_impl_item); void del(GenPtr); void clear(); int size() const; };