This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/78851] New: Resolve DR 550 in cmath and continue using __builtin_powil() even in C++11
- From: "vz-gcc at zeitlins dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 18 Dec 2016 17:02:50 +0000
- Subject: [Bug libstdc++/78851] New: Resolve DR 550 in cmath and continue using __builtin_powil() even in C++11
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78851
Bug ID: 78851
Summary: Resolve DR 550 in cmath and continue using
__builtin_powil() even in C++11
Product: gcc
Version: 6.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: vz-gcc at zeitlins dot org
Target Milestone: ---
It looks like the `long double pow(long double, int)` overload in `<cmath>` was
disabled because of the [DR
550](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3286.html#550) to
the C++11 standard which proposed removing these overloads. However [this
answer](http://stackoverflow.com/a/5627278/15275) by Howard Hinnant, who
submitted the DR in the first place, indicates that these overloads were kept
in the final version of the standard and so, AFAICS, shouldn't be disabled for
C++11 in the header.
One reason for enabling them would be (presumably, I didn't measure it, but
#11706 wouldn't have been done without it, I think) to improve performance but
another one, which is actually the one that led me to open this bug, is to
avoid gratuitous inconsistencies between C++03 and C++11.
See also #70299.