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