
On Wed, 19 Apr 2006 18:31:14 +0100, Paul A Bristow wrote
So a) is in principle fixed IMO.
As to b), I had understood that we had agreed that all NaNs could reasonably be treated as identical and one would get a NaN (unspecified) back. Similarly infinities.
http://article.gmane.org/gmane.comp.lib.boost.devel/134569/match=serializati on+nan
But simple
stream << output_value; // write out. double read_value; stream >> read_value; // read back.
doesn't work for
double output_value = numeric_limits<double>::quiet_NaN(); // output_value 1.#QNAN != read_value 1 double output_value = numeric_limits<double>::infinity(); // output_value 1.#INF != read_value 1
So some special flag would be needed to hold the Nan or Inf nature.
If only there was a Standard representation of Nan and Infs. VERY shortsighted, making NaNs and infs hardly useable.
Agreed. The types in date_time have the ability to serialize and deserilize NADT (not a date time), -infinity and +infinity. Why couldn't there be a simple extension to the numpunct<charT> facet to define an appropriate output string? Basically something like: //see Langer and Kreft p 414... template<class charT> class numpunct : public locale::facet { //new functions for nan and infinity string_type not_a_number_name() const; string_type infinity_name() const; And you'd have to fix num_get as well. Jeff