The GGL makes use of the following Boost Libraries:
- Boost Range
- Boost Type Traits (e.g. remove_const)
- Boost Concept Check Library
- Boost Numeric Conversion (cast, bounds)
- Boost MPL
- Boost Static Assert
- Boost Iterator
- Boost Smart Pointer (shared_ptr, in the extensions spatial index and projections)
- Boost uBLAS
- Adapted geometries:
- IO and parsing
- Boost Tokenizer
- Boost Conversion (lexical cast)
- Boost String Algo
- Testing
- Examples
Many of these are used a lot inside the library.
The Boost.Range library is used everywhere to declare iterators and to walk through standard containers or custom ranges.
The Boost Concept Check Library is used to check concepts, for geometries as well as for strategies.
Tranformations are implemented using Boost uBLAS
MPL is used for a.o. reverse dispatching
Finally, the library can perfectly be used together with the Boost Graph Library, as shown in example 7.
The GGL makes substantial use of the std library, and is designed to be compatible with it.
- provided geometries (linestring, ring, polygon, multi-s) make default use of std::vector (but that is configurable)
- std sorting, unique copies, maps can make use of provided functors in compare.
- internally, there are vector's, deque's, there is sorting, many things are implemented using the std library