STL Overview: Issues
- STL does not handle polymorphic elements in containers
(see the polymorphic class problem) because all containers
are "direct".
- Allocators: Most compilers don't yet handle template parameters that are themselves
templates.
- Hash tables are not yet part of the C++ standard. (There just wasn't time to get it
into the standard.)
- Iterators are not "robust"; that is, it's possible to crash a program by deleting an
element as its container is being traversed by an iterator.
- The "semi-formal" STL specification is less than desirable. A truly formal
specification would be useful.
- STL can be difficult to understand due to the high degree of parameterization.
- Templates can be difficult to debug; debuggers will probably improve to accomodate them.
- STL does not compile on all compilers; compiler vendors aren't yet up to speed with templates.
- Present compilers often do not optimize the generated code; leads to "code blote".