...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
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.