On Wednesday 13 November 2002 14:39, Fernando Cacciola wrote: > Unfortunately, some compilers -like bcc55- provide a 'default' > numeric_limits<> with no compile-time constants, while the specializations > do have compile-time values. Therefore, boost's numeric_limits<> is not > picked up for these compilers; but trying to use numeric_limits<> with user > defined types fails to compile unless the types explicitly specialize it > properly. > > I see three possible solutions here: > > (1) REQUIRE user defined types to *properly* specialize numeric_limits. > (2) Enhance boost/limits.hpp so that it 'fixes' only the default > numeric_limits<> if only that one is broken. > (3) Define my own user specializable traits. > > (3) is IMO a very bad idea since we would end up with overlapping traits > and potential ODR violations. > (2) might be a better solution but requires further examination. > (1) is the easiest way to go from the library developer POV, but might > annoy users.
IIRC, the problem even arises when using std::complex< double > as argument to std::numeric_limits<>. On gcc 3.2 for instance, the epsilon() is defined to be (0,0) which is certainly not correct and even highly dangerous. toon _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost