Boost logo

Boost :

Subject: Re: [boost] [units] Interest in UDLs (e.g. _kg) for units?
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2014-08-26 13:13:24


> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Marek Kurdej
> Sent: 25 August 2014 17:31
> To: Boost Developers' Mailing List
> Cc: mathias.gaunard_at_[hidden]
> Subject: Re: [boost] [units] Interest in UDLs (e.g. _kg) for units?
>
> >
> > From: Mathias Gaunard <mathias.gaunard_at_[hidden]>
> > To: boost_at_[hidden]
> > 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_at_[hidden]>
> > 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 :-(

Paul

---
Paul A. Bristow
Prizet Farmhouse
Kendal UK LA8 8AB
+44 (0) 1539 561830

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk