[Bug target/54686] std::abs (long long) resorts to std::abs (double) if llabs is absent
paolo.carlini at oracle dot com
gcc-bugzilla@gcc.gnu.org
Sun Sep 23 23:06:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54686
--- Comment #21 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-09-23 23:06:14 UTC ---
(In reply to comment #18)
> (In reply to comment #16)
> > I also note that so far we added the long long overloads only in C++11 mode. I
> > know that elsewhere in the library we have long long overloads in C++98 mode
> > too as extensions, but then maybe better wrapping in _GLIBCXX_USE_LONG_LONG?
>
> If someone calls abs on a long long in C++98, does that mean they will silently
> use the double version? I saw some other places in the library that used long
> long without any macro protection, so I did the same.
Where, exactly? I think we should be more consistent about long long. I seem to
remember only tr1/type_traits maybe, not actual overloads. Anyway,
_GLIBCXX_USE_LONG_LONG is always defined by default, I think it's Ok to protect
with it and allow people to disable the overloads in C++98 mode if they want.
More information about the Gcc-bugs
mailing list