Dear All,
I'm pleased to announce that Fernando Cacciola's Numeric Conversion library
is accepted into boost.
Although it was not clear how all advanced issues should be resolved (see
below), I think there is a solid foundation
on which to improve the library. Bjarne Stroupstrup has said that good
languages are not merely designed to be good, but they are grown into good
languages; IMO, the
same holds for libraries.
The rest of this mail has this agenda:
1) statistics
2) issues
3) improvements that must be made
(1) Statistics
--------------------
Here is how people voted:
people doing a review: 9
people voting yes: 7
people voting no: 0
people not voting: 2
Some general comments: Only one person was *really* knowlegable about the
floating point numbers; the rest of us
did our best to try to understand.
Luckily the most simple part of the library was fairly
easily evaluated. As for the more
advanced part, it seemed to me that many had too little time to
do a thoughrough review (myself
included) and it was a bit hard to come up with a test program
where all of the lib could be tested.
(2) Issues:
----------------
Below are some of the most important issues that came up during the review.
a) Float to int conversions incremented the integer value. Fernando thinks
it can be healed with a
custom specialization of the rounder policies for these types.
b) The library should be put in its own directory.
c) Improved UDT support (if it is necessary). There are several physical
quantity libs being built and it
remains to be seen if those people can use it.
d) Long to float conversion: Consider Andy Little's example:
int main() {
long x = std::numeric_limits<long>::max();
std::cout.precision(16);
std::cout << x <<'\n';
float y = x;
std::cout << y << '\n';
x = y;
std::cout << x <<'\n';
}
/*
output from test.exe:
2147483647
2147483648
-2147483648
*/
Fernando agued that this should not be checked by his library. The
documentation should definitely document what conversion it cannot be used
to
convert.
(3) improvements that must be made
--------------------------------------
(a) more and enhanced documentation. There was a lot of people requesting
more examples, relations between different parts of the library. And a
getting started
guide would be
good too. Maybe the easy parts should be cleanly separated from the more
advanced parts. A consistent use
of fonts for math,
code, emphasis, definitions is needed.
Fernando should seek the authors of the existing numeric_cast documentation
permission to reuse some of their documentation.
In general there was no huge design decision that was being deemed
unacceptable.
Thanks to everybody who took part of the review.
best regards
Thorsten -- review manager