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 libstdc++/78851] New: Resolve DR 550 in cmath and continue using __builtin_powil() even in C++11


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.

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