compat

# Relation to Boost and std libraries

# Boost

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:

  - Boost Array

  - Boost Tuple

- IO and parsing

  - Boost Tokenizer

  - Boost Conversion (lexical cast)

  - Boost String Algo

- Testing

  - Boost Test

  - Boost Timer

- Examples

  - Boost Graph Library

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.

# std:: library

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 "compare".

- internally, there are vector's, deque's, there is sorting, many things are implemented using the std library