}
 
 public:
-       class const_iterator
+       class const_iterator : public std::iterator<std::forward_iterator_tag, std::pair<K, T>>
        {
                friend class dict;
        protected:
                const std::pair<K, T> *operator->() const { return &ptr->entries[index].udata; }
        };
 
-       class iterator
+       class iterator : public std::iterator<std::forward_iterator_tag, std::pair<K, T>>
        {
                friend class dict;
        protected:
        }
 
 public:
-       class const_iterator
+       class const_iterator : public std::iterator<std::forward_iterator_tag, K>
        {
                friend class pool;
        protected:
                const K *operator->() const { return &ptr->entries[index].udata; }
        };
 
-       class iterator
+       class iterator : public std::iterator<std::forward_iterator_tag, K>
        {
                friend class pool;
        protected: