What are the specific differences between the original STL and those parts of it that ended up in the C++ Standard Library?

c++, stl

Solution

SGI STL stuff "missing" in the C++ standard includes

- `slist`

- `bit_vector`

- `hash_set`, `hash_map`, `hash_multiset`, `hash_multimap` and everything pertaining to hash functions

- `rope`

- `iota`

- `lexicographical_compare_3way`

- `random_sample` and `random_sample_n`

- the MonoidOperation and Trivial Iterator concepts

- a host of backward compat headers such as `algo.h`

... and I bet you can find a few more.

Problem

I'd like to know what the specific differences are between the STL as released by SGI and the ISO C++ standard library. Prompted by this question and not at all answered by this question. Some differences are obvious, such as the `slist` and `hash_set` classes that never made it into the standard. I'm also looking for more subtle differences, such as return value/parameter differences on methods, or different complexity requirements, or different iterator invalidation conditions.

Original source

Related problems