docs: 2.0 release post updated

This commit is contained in:
Mateusz Pusz
2023-12-17 17:33:35 +01:00
parent 5b9718cbfa
commit 2a3341df7d

View File

@@ -12,7 +12,8 @@ categories:
[GitHub](https://github.com/mpusz/mp-units/releases/tag/v2.0.0) and [GitHub](https://github.com/mpusz/mp-units/releases/tag/v2.0.0) and
[Conan](https://conan.io/center/recipes/mp-units?version=2.0.0).** [Conan](https://conan.io/center/recipes/mp-units?version=2.0.0).**
In this post, we will describe all the changes introduced by the new version. The list of the most significant changes introduced by the new version can be found in our
[release notes](../../release_notes.md#2.0.0). We will also describe some of them in this post.
<!-- more --> <!-- more -->
@@ -39,7 +40,7 @@ Here are the significant changes that the users can observe:
- **Header files content and layout** - **Header files content and layout**
Previously, all the header files resided in the _include/units_ directory, and now they can be Previously, all the header files resided in the _include/units_ directory. Now, they can be
found in _include/mp-units_. The project file tree was significantly changed as well. Many found in _include/mp-units_. The project file tree was significantly changed as well. Many
files were moved to different subdirectories or renamed. files were moved to different subdirectories or renamed.
@@ -50,10 +51,12 @@ Here are the significant changes that the users can observe:
- **Abstractions, interfaces, definitions** - **Abstractions, interfaces, definitions**
The interfaces of all of the types were refactored, and we have a new way to construct a `quantity` The interfaces of all of the types were refactored. We got unit symbols and a new way
and `quantity_point`, we got unit symbols, and nearly all of the template arguments are now passed to construct a `quantity` and `quantity_point`. The readability of the generated types was improved thanks
by values thanks to class NTTP extensions in C++20. Also, systems definitions are much terser now to the introduction of expression templates. Nearly all of the template arguments are now passed
thanks to a new design approach. by values thanks to class NTTP extensions in C++20. As a result, unit definitions are much
easier and terser. Also, the V2 has a powerful ability to model systems of quantities and
provides definitions for many ISQ quantities.
*[NTTP]: Non-Type Template Parameter *[NTTP]: Non-Type Template Parameter
@@ -90,13 +93,29 @@ to be considered a good practice here.
### No UDLs anymore ### No UDLs anymore
Over the years, we have learned that UDLs are not a good solution either. More information on this Over the years, we have learned that UDLs are not a good solution. More information on this
subject can be found in the subject can be found in the
[Why don't we use UDLs to create quantities?](../../getting_started/faq.md#why-dont-we-use-udls-to-create-quantities) [Why don't we use UDLs to create quantities?](../../getting_started/faq.md#why-dont-we-use-udls-to-create-quantities)
chapter. chapter.
*[UDL]: User-Defined Literals *[UDL]: User-Defined Literals
### No construction of a `quantity` from a raw value
To improve safety, we no longer allow the construction of quantities from raw values. In the new design, we
always need to explicitly specify a unit to create a `quantity`:
```cpp
quantity q1 = 42 * m;
quantity<si::metre> = 2 * km;
quantity q3(42, si::metre);
```
The previous approach was reported to be error-prone under maintenance. More on this subject
can be found in the
[Why can't I create a quantity by passing a number to a constructor?](../../getting_started/faq.md#why-cant-i-create-a-quantity-by-passing-a-number-to-a-constructor)
chapter.
## New look and feel ## New look and feel