|  | Home | Libraries | People | FAQ | More | 
        Boost.Container is a product of a long development
        effort that started in
        2004 with the experimental Shmem library, which pioneered the use
        of standard containers in shared memory. Shmem included modified SGI STL
        container code tweaked to support non-raw allocator::pointer
        types and stateful allocators. Once reviewed, Shmem was accepted as Boost.Interprocess
        and this library continued to refine and improve those containers.
      
        In 2007, container code from node containers (map,
        list, slist)
        was rewritten, refactored and expanded to build the intrusive container library
        Boost.Intrusive.
        Boost.Interprocess containers were refactored
        to take advantage of Boost.Intrusive containers
        and code duplication was minimized. Both libraries continued to gain support
        and bug fixes for years. They introduced move semantics, emplacement insertion
        and more features of then unreleased C++0x standard.
      
        Boost.Interprocess containers were always
        standard compliant, and those containers and new containers like stable_vector and flat_[multi]set/map were used outside Boost.Interprocess
        with success. As containers were mature enough to get their own library,
        it was a natural step to collect them containers and build Boost.Container,
        a library targeted to a wider audience.
      
With so many high quality standard library implementations out there, why would you want to use Boost.Container? There are several reasons for that:
[stable/static/small]_vector and flat_[multi]set/map.
          basic_string.