Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Struct template dim

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


// 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;


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.