This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

[Bug target/54686] std::abs (long long) resorts to std::abs (double) if llabs is absent


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.


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