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.