forked from mpusz/mp-units
FAQ section added to README
This commit is contained in:
@@ -927,3 +927,31 @@ be enabled by providing a specialization of `quantity_values` type trait for `Re
|
|||||||
template<Scalar Rep>
|
template<Scalar Rep>
|
||||||
struct quantity_values;
|
struct quantity_values;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## FAQ
|
||||||
|
|
||||||
|
1. Why all UDLs are prefixed with `q_` instead of just using unit symbol?
|
||||||
|
|
||||||
|
Usage of only unit symbols in UDLs would be a preferred approach (less to type, easier to
|
||||||
|
understand and maintain). However, while increasing the coverage for the library we learned
|
||||||
|
that there are a lot unit symbols that conflict with built-in types or numeric extensions.
|
||||||
|
A few of those are: `F` (farad), `J` (joule), `W` (watt), `K` (kelvin), `d` (day), `l` or
|
||||||
|
`L` (litre), `erg`, `ergps`. For a while we had to used `_` prefix to make the library work
|
||||||
|
at all but at some point we had to unify the naming and we came up with `q_` prefix which
|
||||||
|
results in a creation of quantity of a provided unit.
|
||||||
|
|
||||||
|
2. Why dimensions depend on units and not vice versa?
|
||||||
|
|
||||||
|
Most of the libraries define units in terms of dimensions and this was also an initial
|
||||||
|
approach for this library. However it turns out that for such a design it is hard to provide
|
||||||
|
support for all the required scenarios.
|
||||||
|
|
||||||
|
The first of them is to support multiple unit systems (like SI, CGS, ...) where each of
|
||||||
|
can have a different base unit for the same dimension. Base quantity of dimension length in
|
||||||
|
SI has to know that it should use `m` to print the unit symbol to the text output, while
|
||||||
|
the same dimension for CGS should use `cm`. Also it helps in conversions among those systems.
|
||||||
|
|
||||||
|
The second one is to support natural units where more than one dimension can be measured
|
||||||
|
with the same unit (i.e. `GeV`). Also if someone will decide to implement a systems where
|
||||||
|
SI quantities of the same kind are expressed as different dimensions (i.e. height, width,
|
||||||
|
and depth) all of them will just be measured in meters.
|
||||||
|
Reference in New Issue
Block a user