![]() |
Quantify
An extensible C++ units library
|
Namespaces | |
| namespace | absorbed_dose |
| namespace | angle |
| namespace | catalytic_activity |
| namespace | distance |
| namespace | dose_equivalent |
| namespace | electric_capacitance |
| namespace | electric_charge |
| namespace | electric_conductance |
| namespace | electric_current |
| namespace | electric_resistance |
| namespace | emf |
| namespace | energy |
| namespace | force |
| namespace | frequency |
| namespace | illuminance |
| namespace | inductance |
| namespace | light_intensity |
| namespace | luminous_flux |
| namespace | magnetic_flux |
| namespace | magnetic_flux_density |
| namespace | mass |
| namespace | power |
| namespace | pressure |
| namespace | radionuclide_activity |
| namespace | solid_angle |
| namespace | speed |
| namespace | substance |
| namespace | temperature |
| namespace | time |
| namespace | volume |
Classes | |
| struct | frac |
| struct | frac< Numerator, Denominator > |
| struct | is_frac |
| struct | is_frac< frac< Args... > > |
| struct | is_mul |
| struct | is_mul< mul< Args... > > |
| struct | mul |
| struct | mul< Products... > |
| struct | no_scale |
| struct | no_unit |
| struct | quantity |
| struct | ratio |
| Static representation of a numerical ratio in the form of a fraction. More... | |
| struct | reduce_impl |
| struct | reduce_scale |
| struct | reduce_scale< Scale > |
| struct | scale_conversion_t |
| struct | scale_conversion_t< scales::celsius::scale, scales::fahrenheit::scale > |
| struct | scale_conversion_t< scales::kelvin::scale, scales::celsius::scale > |
| struct | scale_conversion_t< scales::kelvin::scale, scales::fahrenheit::scale > |
| struct | unit_conversion_t |
Concepts | |
| concept | Convertible |
| concept | ConvertibleScales |
| concept | CompareScales |
| concept | SameScale |
| concept | Quantity |
Unit agnostic type concept for use with the auto keyword. | |
| concept | QuantityConcept |
| Predicate that checks if a type is a quantity regardless of its unit. | |
| concept | has_scale |
| Predicate that checks if a type defines a scale for itself. | |
Typedefs | |
| template<typename T> | |
| using | quantify::is_quantity |
| Predicate that checks if a type is a quantity regardless of its unit. | |
| template<typename Expr> | |
| using | quantify::reduce = typename reduce_impl<Expr>::type |
| template<typename U, typename T> | |
| using | quantify::Q = quantity<U, T> |
Functions | |
| template<QuantityConcept Q, typename T1> requires (not QuantityConcept<T1>) | |
| Q | quantify::operator/ (const T1 &lhs, const Q &rhs) |
| template<QuantityConcept Q, typename T1> requires (not QuantityConcept<T1>) | |
| Q | quantify::operator* (const T1 &lhs, const Q &rhs) |
| template<typename N> | |
| quantify::REDUCE_PATTERN (frac< N, N >) TO(no_unit) | |
| template<> | |
| quantify::REDUCE_PATTERN (frac< no_unit, no_unit >) TO(no_unit) | |
| template<typename N> | |
| quantify::REDUCE_PATTERN (frac< N, no_unit >) TO(reduce< N >) | |
| template<typename N, typename D> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< N, frac< N, D > >) TO(reduce< D >) | |
| template<typename N, typename D1, typename D2> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< N, frac< D1, D2 > >) TO(reduce< frac< reduce< mul< reduce< N > | |
| template<typename N, typename D> | |
| quantify::REDUCE_PATTERN (frac< frac< N, D >, no_unit >) TO(reduce< frac< N | |
| template<typename N, typename D> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< frac< N, D >, N >) TO(reduce< frac< no_unit | |
| template<typename N, typename D1, typename D2> requires (!is_frac_v<N>) | |
| quantify::REDUCE_PATTERN (frac< frac< D1, D2 >, N >) TO(reduce< frac< reduce< D1 > | |
| template<typename N1, typename N2, typename D1, typename D2> requires (!std::is_same_v<N1, D1> || !std::is_same_v<N2, D2>) | |
| quantify::REDUCE_PATTERN (frac< frac< N1, N2 >, frac< D1, D2 > >) TO(reduce< frac< reduce< mul< reduce< N1 > | |
| template<typename N, typename ... Ds> requires (packtl::Contains<N, Ds...>) | |
| quantify::REDUCE_PATTERN (frac< N, mul< Ds... > >) TO(reduce< frac< no_unit | |
| template<typename D, typename ... Ns> requires (packtl::Contains<D, Ns...>) | |
| quantify::REDUCE_PATTERN (frac< mul< Ns... >, D >) TO(reduce< cancel_out< reduce< mul< Ns... > > | |
| template<typename M1, typename M2> requires (is_mul_v<M1> && is_mul_v<M2> && !packtl::share_items<M1, M2>::value) | |
| quantify::REDUCE_PATTERN (frac< M1, M2 >) TO(frac< M1 | |
| template<typename M1, typename M2> requires (is_mul_v<M1> && is_mul_v<M2> && packtl::share_items<M1, M2>::value) | |
| quantify::REDUCE_PATTERN (frac< M1, M2 >) TO(reduce< frac< reduce< typename cancel_out_many< M1 | |
| template<> | |
| quantify::REDUCE_PATTERN (mul<>) TO(no_unit) | |
| template<typename P> | |
| quantify::REDUCE_PATTERN (mul< P >) TO(reduce< P >) | |
| template<typename ... Ps> requires (!packtl::Contains<no_unit, Ps...> && ((!is_mul_v<Ps> && !is_frac_v<Ps>) && ...)) | |
| quantify::REDUCE_PATTERN (mul< Ps... >) TO(mul< Ps... >) | |
| template<typename ... Ps> requires (!packtl::Contains<no_unit, Ps...> && ((is_mul_v<Ps> || is_frac_v<Ps>) || ...)) | |
| quantify::REDUCE_PATTERN (mul< Ps... >) TO(reduce< normalize_t< mul< Ps... > > >) | |
| template<typename ... Ps> requires packtl::Contains<no_unit, Ps...> | |
| quantify::REDUCE_PATTERN (mul< Ps... >) TO(reduce< cancel_out< mul< Ps... > | |
Variables | |
| template<typename T> | |
| constexpr bool | quantify::is_quantity_v = is_quantity<T>::value |
| Predicate that checks if a type is a quantity regardless of its unit. | |
| template<typename M> | |
| constexpr bool | quantify::is_mul_v = is_mul<M>::value |
| template<typename F> | |
| constexpr bool | quantify::is_frac_v = is_frac<F>::value |
| template<typename S> | |
| constexpr bool | quantify::has_scale_v = has_scale<S> |
| See has_scale. | |
| quantify::reduce< D2 > | |
| quantify::reduce< D1 > | |
| quantify::D | |
| quantify::reduce< D > | |
| quantify::reduce< mul< reduce< D2 >, reduce< N > > > | |
| quantify::reduce< mul< reduce< D1 >, reduce< N2 > > > | |
| quantify::reduce< cancel_out< reduce< mul< Ds... > >, N > > | |
| quantify::M2 | |
| M2 | quantify::reduce< typename cancel_out_many< M2, M1 >::type > |
| quantify::no_unit | |
|
export |
Predicate that checks if a type is a quantity regardless of its unit.
Checks whether the typename T is a specialization of the quantify::quantity class
| T |
Definition at line 127 of file concepts.cppm.
|
export |
Definition at line 278 of file quantity.cppm.
|
export |
Definition at line 49 of file preface.cppm.
|
export |
Definition at line 273 of file quantity.cppm.
|
export |
Definition at line 267 of file quantity.cppm.
|
export |
|
export |
|
export |
|
export |
Here is the call graph for this function:
|
export |
|
export |
|
export |
Here is the caller graph for this function:
|
export |
Here is the call graph for this function:
|
export |
Here is the call graph for this function:
|
export |
Here is the call graph for this function:
|
export |
Here is the call graph for this function:
|
export |
Here is the call graph for this function:
|
export |
Definition at line 49 of file reduce_rules.cppm.
|
constexprexport |
See has_scale.
Definition at line 103 of file preface.cppm.
|
constexprexport |
Definition at line 89 of file preface.cppm.
|
constexprexport |
Definition at line 80 of file preface.cppm.
|
constexprexport |
Predicate that checks if a type is a quantity regardless of its unit.
Checks whether the typename T is a specialization of the quantify::quantity class
| T |
Definition at line 139 of file concepts.cppm.
|
export |
Definition at line 82 of file reduce_rules.cppm.
|
export |
Definition at line 105 of file reduce_rules.cppm.
|
export |
Definition at line 66 of file reduce_rules.cppm.
|
export |
Definition at line 53 of file reduce_rules.cppm.
|
export |
Definition at line 46 of file reduce_rules.cppm.
|
export |
Definition at line 46 of file reduce_rules.cppm.
|
export |
Definition at line 61 of file reduce_rules.cppm.
|
export |
Definition at line 57 of file reduce_rules.cppm.
|
export |
Definition at line 86 of file reduce_rules.cppm.