...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
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:
|
|
|
element container |
||
interval container |
interval_set
,
separate_interval_set
,
split_interval_set
are models of concept Set
.
icl::map
, interval_map
, split_interval_map
are models of concept Map
.
Sets
or Maps
we abstract from
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.
icl::map
to
avoid confusion withstd::map
.