The Boost.Units library is a C++ implementation of dimensional analysis in
a general and extensible manner, treating it as a generic compile-time metaprogramming
problem. With appropriate compiler optimization, no runtime execution cost
is introduced, facilitating the use of this library to provide dimension checking
in performance-critical code. Support for units and quantities (defined as
a unit and associated value) for arbitrary unit system models and arbitrary
value types is provided, as is a fine-grained general facility for unit conversions.
Complete SI and CGS unit systems are provided, along with systems for angles
measured in degrees, radians, gradians, and revolutions and systems for temperatures
measured in Kelvin, degrees Celsius and degrees Fahrenheit. The library architecture
has been designed with flexibility and extensibility in mind; demonstrations
of the ease of adding new units and unit conversions are provided in the examples.

In order to enable complex compile-time dimensional analysis calculations with
no runtime overhead, Boost.Units relies heavily on the Boost Metaprogramming Library
(MPL) and on template metaprogramming techniques, and is, as a consequence,
fairly demanding of compiler compliance to ISO standards. At present, it has
been successfully compiled and tested on the following compilers/platforms
: