Paul A. Bristow skrev den 2014-08-26 19:13:
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Marek Kurdej Sent: 25 August 2014 17:31 To: Boost Developers' Mailing List Cc: mathias.gaunard@ens-lyon.org Subject: Re: [boost] [units] Interest in UDLs (e.g. _kg) for units?
From: Mathias Gaunard
To: boost@lists.boost.org Date: Mon, 25 Aug 2014 17:16:21 +0200 Subject: Re: [boost] [units] Interest in UDLs (e.g. _kg) for units? On 25/08/14 16:03, Sebastian Redl wrote: On 25 Aug 2014, at 13:24, Mathias Gaunard
wrote:
On 22/08/14 10:08, Curdeius Curdeius wrote:
Hi all,
I was wondering if there is any interest in adding User-Defined
Literals
(UDLs) to Boost.Units.
IMO, it could simplify some code and improve code readability in some cases. For example instead of writing (it's a somehow artificial example) 5.34 * si::milli * si::kilogram; 1234 * si::kilogram; one would write 5.34_g; 1234_kg;
Did you mean to write 5.34_g * si::milli; or 5.34_mg; ?
No, to get grams you need si::milli * si::kilogram. I assume the intention is that the _g suffix already includes that scaling - otherwise it’d be broken.
Sorry, I read that too fast. In any case the idea would be to get suffixes that include all prefix variants as well.
Yes, the idea is to include all the prefix variants as well, so for the mass, we will have: ..., _ng, _ug (?), _mg, _g, _kg, _Mg,_Gg, _Tg, ... And, the fact is, writing si::milli * si::kilogram is counterintuitive as you have just experienced on your own.
Looks much nicer!
Will reduce the user resistance to using Boost.Units - it's a bit verbose for mere engineers and scientist's taste ;-)
But have you implemented it yet?
(and are there any hidden gotchas? - the proposed C++ time literals suffixes proved to be a can of worms :-(
One known problem is that the kg is the base unit, despite its prefix. That makes the higher units a bit odd. I have never ever seen Mg used, it would be called a ton (metric...). Then we have megatons, but never teragrams. Closing the can before anything bad happens... Bo Persson