5 Quantities library [qties]

5.6 Traits [qty.traits]

template<typename Rep> constexpr bool is_scalar = std::is_floating_point_v<Rep> || (std::is_integral_v<Rep> && !is_same_v<Rep, bool>); template<typename Rep> constexpr bool is_vector = false; template<typename Rep> constexpr bool is_tensor = false;
Remarks: Pursuant to N4971, [namespace.std] ([spec.ext]), users may specialize is_scalar, is_vector, and is_tensor to true for cv-unqualified program-defined types which respectively represent a scalar (IEC 60050, 102-02-18), a vector (IEC 60050, 102-03-04), and a tensor, and false for types which respectively do not.