[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost
Subject:    Re: [boost] [units] Interest in UDLs (e.g. _kg) for units?
From:       Bo Persson <bop () gmb ! dk>
Date:       2014-08-27 9:01:46
Message-ID: ltk6pi$vrj$1 () ger ! gmane ! org
[Download RAW message or body]

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 <mathias.gaunard@ens-lyon.org>
> > > 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
> > > > <mathias.gaunard@ens-lyon.org>
> > > 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




_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic