...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 - @c mpl::plus for two @c dims
- @c mpl::minus for two @c dims
- @c mpl::negate for a @c 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. - @c mpl::times for a @c static_rational and a @c dim in either order
- @c mpl::divides for a @c static_rational and a @c dim in either order
These metafunctions likewise operate on the exponent only.