Hi, sorry for having missed this,
I would have loved to participate in this discussion, I had done some research on some of these topics.
Please take this email with a little bit of salt, some of the criticism may sound harsh, but it is not personal, please don’t take it personal, I’m really trying to
help constructively.
I myself have written a units library (you can find it here:
https://github.com/tmiguelf/unit), (mostly as a personal project, although it derives from a professional application),
granted not as flashy or as well documented, some of the concepts I would have changed if I were to write it again today...
Anyways, I have looked at many different implementations of many different “units” like libraries each have their own implementation quirks.”
There seems to be the temptation for the authors to adopt their personal pet projects as a standard whit all of its quirks instead of finding a solution that doesn’t
have “quirks”.
One of the most common mistakes I have seen made is to treat units like degrees centigrade like any other units.
This is a short list of some of the features of this particular unit:
It is not just a simple quirk if a library fails to account for this, it is bug, it is actually more than just bugged, it is fundamentally broken.
I am aware of the remark in iso 80000-5 regarding degrees Celsius, and I quote:
“The unit degree Celsius is a special name for
the kelvin for use in stating values of Celsius
temperature. The unit degree Celsius is by
definition equal in magnitude to the kelvin. A
difference or interval of temperature may be
expressed in kelvin or in degrees Celsius.”
is completely bonkers, every single statement in that sentence is wrong, it makes absolutely no sense from a dimensional analysis perspective, it makes no physical sense,
it is mathematically incoherent.
The only correct way to deal with a unit like this is to give its special type, and if it needs to do anything it needs to be converted into Kelvin, and if that is not
how it works, I will be able to give you an example on how to get it to do the wrong thing no matter what you try.
It is not just a quirky, its wrong!
This also makes the concept of “quantity point” kind of broken, allot of the justification around it uses concepts that are wrong, it makes a mess of the definition
of points and vectors, it is just mathematically wrong.
The author probably meant a “reference frame”, but the way it is handled is not sound.
If you want, we can have a quick call to explain this in more detail, please take into consideration when setting up the standard.
Unicode is the least of its problems.
Please let’s have a talk.
Br,
Tiago
From: SG16 <sg16-bounces@lists.isocpp.org>
On Behalf Of Tom Honermann via SG16
Sent: Wednesday, 24 January 2024 17:30
To: SG16 <sg16@lists.isocpp.org>; Mateusz Pusz <mateusz.pusz@gmail.com>
Cc: Tom Honermann <tom@honermann.net>
Subject: [SG16] Agenda for the 2024-01-24 SG16 meeting
SG16 will hold a meeting on Wednesday, January 24th, at 19:30 UTC (timezone conversion).
That is today! Yes, I continue to struggle to keep pace with the world. No, I still have not published the minutes from the last meeting.
The agenda follows.
We discussed a draft of P3045 during the
2023-11-29 SG16 meeting. No polls were taken as that discussion was mostly introductory presentation.
Section 13 (Text output) discusses formatting and character encoding considerations. The motivation and proposal for a fixed_string type has been moved to a new paper that is yet to be published;
P3094 (std::basic_fixed_string).
Section 13.6 (Text output open questions) has the following list of questions and is what discussion will focus on today:
The 1st and 4th questions are, I think, the most important ones as they directly impact both the user interface and the implementation. We need to determine how to:
The other questions will likely require a little introductory discussion to better understand the context for the question.
If time permits, we'll continue discussion of CWG 2843 from the 2024-01-10 SG16 meeting (for which minutes are not yet published). I believe there are three questions yet to be answered:
Tom.