| Home | Libraries | People | FAQ | More

## Struct template dim

boost::units::dim — Dimension tag/exponent pair for a single fundamental dimension.

## Synopsis

    // In header: <boost/units/dim.hpp>

    template<typename T, typename V>
    struct dim {
      // types
      typedef dim         type;
      typedef unspecified tag;
      typedef T           tag_type;
      typedef V           value_type;
    };

## Description

The dim class represents a single dimension tag/dimension exponent pair. That is, `dim<tag_type,value_type>` is a pair where `tag_type` represents the fundamental dimension being represented and `value_type` represents the exponent of that fundamental dimension as a `static_rational`. `tag_type` must be a derived from a specialization of `base_dimension`. Specialization of the following Boost.MPL metafunctions are provided

- `mpl::plus` for two `dims`

- `mpl::minus` for two `dims`

- `mpl::negate` for a `dim`

These metafunctions all operate on the exponent, and require that the `dim` operands have the same base dimension tag. In addition, multiplication and division by `static_rational` is supported.

- `mpl::times` for a `static_rational` and a `dim` in either order

- `mpl::divides` for a `static_rational` and a `dim` in either order

These metafunctions likewise operate on the exponent only.