| Home | Libraries | People | FAQ | More

## Utilities

Relatively complete SI and CGS unit systems are provided in `boost/units/systems/si.hpp` and `boost/units/systems/cgs.hpp`, respectively.

### Metaprogramming Classes

    template<long N> struct ordinal<N>;

    template<typename T,typename V> struct get_tag< dim<T,V> >;
    template<typename T,typename V> struct get_value< dim<T,V> >;
    template<class S,class DT> struct get_system_tag_of_dim<S,DT>;
    template<typename Seq> struct make_dimension_list<Seq>;
    template<class DT> struct fundamental_dimension<DT>;
    template<class DT1,int E1,...> struct composite_dimension<DT1,E1,...>;

    template<class Dim,class System> struct get_dimension< unit<Dim,System> >;
    template<class Unit,class Y> struct get_dimension< quantity<Unit,Y> >;
    template<class Dim,class System> struct get_system< unit<Dim,System> >;
    template<class Unit,class Y> struct get_system quantity<Unit,Y> >;

    struct dimensionless_type;
    template<class System> struct dimensionless_unit<System>;
    template<class System,class Y> struct dimensionless_quantity<System,Y>;

    struct implicitly_convertible;
    struct trivial_conversion;
    template<class T,class S1,class S2> struct base_unit_converter<T,S1,S2>;

    template<class Q1,class Q2> class conversion_helper<Q1,Q2>;

### Metaprogramming Predicates

    template<typename T,typename V> struct is_dim< dim<T,V> >;
    template<typename T,typename V> struct is_empty_dim< dim<T,V> >;

    template<typename Seq> struct is_dimension_list<Seq>;

    template<class S> struct is_system< homogeneous_system<S> >;
    template<class S> struct is_system< heterogeneous_system<S> >;
    template<class S> struct is_homogeneous_system< homogeneous_system<S> >;
    template<class S> struct is_heterogeneous_system< heterogeneous_system<S> >;

    template<class Dim,class System> struct is_unit< unit<Dim,System> >;
    template<class Dim,class System> struct is_unit_of_system< unit<Dim,System>,System >;
    template<class Dim,class System> struct is_unit_of_dimension< unit<Dim,System>,Dim >;

    template<class Unit,class Y> struct is_quantity< quantity<Unit,Y> >;
    template<class Dim,class System,class Y> struct is_quantity_of_system< quantity<unit<Dim,System>,Y>,System >;
    template<class Dim,class System,class Y> struct is_quantity_of_dimension< quantity<unit<Dim,System>,Y>,Dim >;

    template<class System> struct is_dimensionless< unit<dimensionless_type,System> >;
    template<class System> struct is_dimensionless_unit< unit<dimensionless_type,System> >;
    template<class System,class Y> struct is_dimensionless< quantity<unit<dimensionless_type,System>,Y> >;
    template<class System,class Y> struct is_dimensionless_quantity< quantity<unit<dimensionless_type,System>,Y> >;