This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Weirdness with numeric_limits in new special functions


Paolo Carlini wrote:
Hi,

The public functions in std::tr1: call these with floating point types only.

I think the errtol *is* a mistake because __eps / 8 will degenerate to 0. The errtol should wind up being rather larger than __eps.

It might be a good idea to block calling with integral _Tp somehow.

Actually, let me walk through the code and make sure what's going on.

any news about this issue?


Thanks in advance,
Paolo.

I started working on this but then work flared up bug time.

I think I can return to this a week from now or maybe during this week.

I also remembered that we use these template functions that promote the types of all the arguments according to the rules set forth in the standard and in TR1. One of which is that if an integer is supplied in a slot expecting some floating point type then the integer is promoted to double and the appropriate overload is called. These functions are in common.h. I think this sufficiently blocks calling with integral _Tp.

Maybe, if it hasn't already been done, I could try my hand at using variadic templates to replace __promote_1, __promote_2, ..., __promote_4. ;-)

Ed


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]