Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.


Sets and Maps
Addability, Subtractability and Aggregate on Overlap
Map Traits

The icl is about sets and maps and a useful implementation of sets and maps using intervals. In the documentation of the icl the different set and map types are grouped in various ways. In order to distinguish those groups we use a naming convention.

Names of concepts start with a capital letter. So Set and Map stand for the concept of a set and a map as defined in the icl. When we talk about Sets and Maps though, most of the time we do not not talk about the concepts themselves but the set of types that implement those concepts in the icl. The main groups, icl containers can be divided in, are summarized in the next table:

  • Containers std:set, interval_set, separate_interval_set, split_interval_set are models of concept Set.
  • Containers icl::map, interval_map, split_interval_map are models of concept Map.
  • Containers that are implemented using elements or element value pairs are called element containers.
  • Containers that are implemented using intervals or interval value pairs (also called segments) are called interval containers.
  • When we talk about Sets or Maps we abstract from the way they are implemented.
  • When we talk about element containers or interval containers we refer to the way they are implemented.
  • std::set is a model of the icl's Set concept.
  • std::map is not a model of the icl's Map concept.
  • The icl's element map is always denoted qualified as icl::map to avoid confusion withstd::map.