This looks fine in general. I've needed something like it so I'm intereseted on seeing this on boost.
Some issues: (1) Why 'index' instead of 'key'? Associative containers use the term key instead of index, since index is typically related with random access instead of look up access. (2) I would explore a friendlier interface. For instance: (2.1) key uniqueness could be specified along with the key itself and not with a separate template parameter. (2.2) keys could be tagged so that 'get' could be parametrized by key tag instead of number. (3) This is a showstopper for me: The key mutating operations should use a higher level interface which protects clustering and ordering invariants. With the current interface, if I understood correctly, I could forget to call update() which would break such invariants. A better setup would be to use something along the lines of the 'modifiers' used by the CGAL Library. Check out the section named "Protected Access to Internal Representations" on this page: "http://www.cgal.org/Manual/doc_html/frameset/fsSupport.html" Best, Fernando Cacciola _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost