...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
In order to give an overview over associated types the icl works with, we will apply abbreviations again that were introduced in the presentaiton of icl class templates,
interval <D, cp, > interval_sets<D, cp, I, a > interval_maps<D, C, T, cp, cb, s, I, a > icl::map <D, C, T, cp, cb, s, a >
where these placeholders were used:
D := class DomainT, C := class CodomainT, T := class Traits, cp := template<class D>class Compare = std::less, cb := template<class C>class Combine = icl::inplace_plus, s := template<class C>class Section = icl::inplace_et, I := class Interval = icl::interval<D,cp>::type a := template<class>class Alloc = std::allocator
With some additions,
sz := template<class D>class size df := template<class D>class difference Xl := class ExclusiveLess = exclusive_less<Interval<DomainT,Compare> > inv:= template<class Combiner>class inverse (T,U) := std::pair<T,U> for typnames T,U
we can summarize the associated types as follows. Again two additional columns for easy comparison with stl sets and maps are provided.
Table 1.12. Icl Associated types
Purpose |
Aspect |
Type |
intervals |
interval |
interval |
element |
element |
---|---|---|---|---|---|---|---|
Data |
fundamental |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||
|
|
|
|
||||
size |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
intervals |
interval |
interval |
element |
element |
|||
Data |
segmental |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||
|
|
|
|
||||
allocation |
|
|
|
|
|
||
intervals |
interval |
interval |
element |
element |
|||
Ordering |
fundamental |
|
|
|
|
|
|
segmental |
|
|
|
|
|
|
|
|
|
|
|||||
Aggregation |
fundamental |
|
|
|
|||
|
|
|
|||||
|
|
|
|||||
|
|
|