forked from mpusz/mp-units
We had some fun exploring the STD UDLs for potential collisions, we have learnt our lesson and know how to proceed. Now is high time to start behaving and obeying C++ rules.
42 lines
1.3 KiB
ReStructuredText
42 lines
1.3 KiB
ReStructuredText
.. namespace:: units
|
|
|
|
Quantity Points
|
|
===============
|
|
|
|
A `quantity point` is an absolute quantity with respect to zero
|
|
(which represents some origin) and is represented in the library with a
|
|
`quantity_point` class template.
|
|
|
|
|
|
Quantity Point Construction
|
|
---------------------------
|
|
|
|
To create the quantity point object from a `quantity` we just have to pass
|
|
the value to the `quantity_point` class template explicit constructor::
|
|
|
|
quantity_point<si::dim_length, si::kilometre, double> d(123_q_km);
|
|
|
|
.. note::
|
|
|
|
As the constructor is explicit, the quantity object can be created from
|
|
a quantity only via
|
|
`direct initialization <https://en.cppreference.com/w/cpp/language/direct_initialization>`_.
|
|
This is why the code below using
|
|
`copy initialization <https://en.cppreference.com/w/cpp/language/copy_initialization>`_
|
|
**does not compile**::
|
|
|
|
quantity_point<si::dim_length, si::kilometre, double> d = 123_q_km; // ERROR
|
|
|
|
|
|
Differences to quantity
|
|
-----------------------
|
|
|
|
Unlike `quantity`, the library provides:
|
|
|
|
- no helper aliases for quantity points, such as ``length_point``,
|
|
- no UDLs for quantity points,
|
|
- no dimension-specific concepts, such as ``LengthPoint``
|
|
(there's the dimension-agnostic `QuantityPoint`),
|
|
- a more limited set of operations on quantity points
|
|
(see the :ref:`Conversions and Casting` chapter)
|