|
Boost : |
From: Steven Watanabe (steven_at_[hidden])
Date: 2007-02-12 15:23:46
AMDG
Noah Roberts <roberts.noah <at> gmail.com> writes:
>
> > 4) Any comments on implementation from those brave enough to look at
> > the guts of the library would be especially welcome.
>
> Since this library is heavily based on MPL it should use MPL constructs.
> Multiplying dimensions for example should be done with mpl::times<>
> instead of creating a new operator (multiply<>) for that purpose.
Not necessarily. static_multiply has to be
able to operate on an mpl::list.
> It
> would also be good if the concepts were documented with concepts (the
> boost::concepts library) and enforced in algorithms.
I don't think it matters much. Have you tried something
that should be illegal but worked or gave an incomprehensible
error message?
> There is also a
> lack of meta functions to identify units and quantities as types (only
> dimensions have this functionality) for use in such things as enable_if
> and other meta programming utilities.
Good point.
>
> I also disagree with the assessment that runtime unit conversions are
> unnecessary. It is my contention that the more common use for a unit
> library is to do conversions at runtime with minimal cost in an easy and
> efficient (from programmer perspective) way. Compile time dimension
> enforcement is a very useful tool but compile time unit enforcement
> without runtime conversion and unit selection is not. The target
> audience for this library, as specified, seem too small to warrant boost
> inclusion.
>
> That's my take.
I don't understand what you want
beyond what is provided in conversion.hpp
systems/si/convert_si_to_cgs.hpp, and
systems/cgs/convert_cgs_to_si.hpp
In Christ,
Steven Watanabe
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk