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;
};