From 7f9f741aa07647c09b6a5ebdc84444093bcbdf22 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Wed, 11 Mar 2020 12:33:35 +0100 Subject: [PATCH] Units graph and `scaled_unit` description added --- docs/_static/img/units.png | Bin 0 -> 33552 bytes docs/framework/units.rst | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 docs/_static/img/units.png diff --git a/docs/_static/img/units.png b/docs/_static/img/units.png new file mode 100644 index 0000000000000000000000000000000000000000..311abd6f1a6ed2ae972c8da5d5fc19df001dce9f GIT binary patch literal 33552 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

FFEGpk<$&Y=trouGQZ;>D zbyDJzL+TZSU41WKX$!8`_pOz_9$(JeC8F8%_ICM7DT~f!qMAV#lM`%eeyq5?)5W1z z>R$ZKC%z`4x^`tb(gnib+?6W-J>Pp`CSU4N{FT-n$=~1A&iMCjPLE#1%B8bE|4Xt7_-}VrHMhjcJ1Rh_R%l}Nrs(QBF}tQ* z|G6~Man}<2$e&AJoe-P&^Zwo6A+k%>@Bi{BxAxh&r^)1VqX`#XI<vSKG-q`@E=$ z{1M&ciq*!7Zdt$DeCNx;0W4 z=Po?qw{OSUS$jDiALnyiTK(?J`2{vr=B&wbr83ifnN$j%a=7eDIHOmq6=xVU+a~4L zecN4+f6Iqjm7Hj}_bUBw#ZNzlD>o$5lczza1-_key1(|cb$O7%GuimUr78|gicSqp zA0NH<+HHNlugUPW+SD&guB4uJ~c{H#vftFJ{C|L492T><5aJFbOavdx9s`C~)%)=<8(8vH9l@{z`)??>gTe~DWM4f9C^}4 literal 0 HcmV?d00001 diff --git a/docs/framework/units.rst b/docs/framework/units.rst index 714b29bf..a2f10be0 100644 --- a/docs/framework/units.rst +++ b/docs/framework/units.rst @@ -308,6 +308,47 @@ provided in the template parameter list after the derived dimension parameter, the library calculates the final ratio for this unit. +Class hierarchy +--------------- + +All of the above class templates to produce unit types inherit from some instance +of a `scaled_unit` class template: + +.. image:: /_static/img/units.png + :align: center + +.. + http://www.nomnoml.com + + #direction: right + + [scaled_unit]<:-[unit] + [scaled_unit]<:-[named_unit] + [scaled_unit]<:-[named_scaled_unit] + [scaled_unit]<:-[prefixed_unit] + [scaled_unit]<:-[deduced_unit] + +`scaled_unit` is a class template used exclusively by the library's framework +and user should not instantiate it by him/her-self. However the user can sometimes +observe this type in case an unit/dimension conversion expression will end up with an +unknown/undefined unit type like in the below example:: + + using namespace si::literals; + + Length auto l = 100q_km_per_h * 10q_s; + +The type of ``l`` above will be +:expr:`si::length, si::metre>, long double>`. This is caused +by the fact that the library does not define a unit of a length quantity that has the +ratio ``10/36`` of a `si::metre`. If such a unit was predefined we would see its concrete +type here instead. + +.. seealso:: + + To learn more about unknown units please refer to + :ref:`Working with Unknown Units and Dimensions` chapter. + + .. rubric:: Citations: .. [P0847] `"Deducing this" `_, Programming Language C++ proposal