Hi Paolo,

2012/9/19 Paolo Carlini <paolo.carl...@oracle.com>:
> On 09/19/2012 01:24 AM, Paolo Carlini wrote:
>>
>> On 09/19/2012 01:12 AM, Paolo Carlini wrote:
>>>
>>> Hi again,
>>>
>>> On 09/18/2012 08:33 PM, Paolo Carlini wrote:
>>>>
>>>> But I'm not surprised, frankly, I think the conflict is expected, *IF*
>>>> (please check) TR1 says that those three overloads, for float, double an
>>>> long double, must be declared in std::tr1 (likewise for all the other math
>>>> functions) Now, given that our implementation has the C math.h injecting
>>>> stuff in the global namespace - and that is legal - I would say that there
>>>> is nothing to fix, maybe just a library testcase to tweak. As a matter of
>>>> QoI the idea of having in tr1 using std::pow seems good, if this is what 
>>>> you
>>>> are suggesting.
>>>
>>> I found the time to go (again, hopefully it's the last time ;) through
>>> tr1/cmath, and now I understand why we have an issue with pow only, not with
>>> the other functions. Ok.
>>>
>>> On the other hand - because of that comment which you mentioned earlier -
>>> I don't think we can just have using std::pow in namespace std::tr1. I'm
>>> coming to the conclusion that having instead an using ::pow, instead of the
>>> open coded pow (double, double) could work. Did you try that together with
>>> your front-end patch?

Yes, I tried that last evening (using ::pow), it passes regtest as
usual -- probably by lack of testsuite coverage.
And 'using std::pow' simply does not work.

>> But I'm afraid this is still not completely correct, because if the user
>> code has a using std::pow in the global namespace and then and include
>> <tr1/cmath> the latter drags again in namespace std::tr1 the overloads pow
>> (*, int) which we don't want there... grrrrr

I'll add a testcase for this, if you agree.

> You know what? All in all, I think we can go with your original idea of just
> removing the overload for (double, double): what I didn't realize the first
> time I saw the idea is that we have anyway the templatized pow which
> forwards to std::pow. Thus, I suppose things should work pretty well. But
> please add a big comment before the commented out overload. And let's see if
> over the next months somebody complaints, otherwise, I think it will be
> enough for TR1, at this point.
>
> Thanks for your patience!!!

It seems reasonable, I'll update the patch soon with the comment that
you suggest.
Thank you for your immediate feedback !

-- 
Fabien

Reply via email to