[v3] fix libstdc++/51083
Gabriel Dos Reis
gdr@integrable-solutions.net
Sat Nov 12 17:33:00 GMT 2011
On Sat, Nov 12, 2011 at 9:59 AM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> This allows __promote to be used like enable_if to constrain the TR1
> and C++11 maths function overloads so they only work for floating
> point and integral types.
>
> PR libstdc++/51083
> * include/ext/type_traits.h (__promote): Only define __type member
> for integral and floating point types, to prevent math functions
> participating in overload resolution for other types.
> (__promote_2, __promote_3, __promote_4): Use __promote in default
> template argument values, so deduction only succeeds for integral and
> floating point types.
> * testsuite/26_numerics/cmath/51083.cc: New.
> * testsuite/26_numerics/complex/51083.cc: New.
> * testsuite/tr1/8_c_compatibility/cmath/51083.cc: New.
> * testsuite/tr1/8_c_compatibility/complex/51083.cc: New.
>
> tested x86_64-linux, committed to trunk.
>
> I'm undecided whether this counts as a regression or not and if it
> should be applied to the 4.6 branch - the testcases worked before TR1
> was added or without -std=c++0x.
>
I'm OK with it everywhere.
More information about the Libstdc++
mailing list