This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.

3693. §[c.math] Can any of float/double/long double overloads be fused into template overloads?

Section: 28.7 [c.math] Status: New Submitter: Jiang An Opened: 2022-04-28 Last modified: 2022-05-17

Priority: 2

View all other issues in [c.math].

View all issues with New status.


IIUC LWG 3234 will be resolved by the recently approved paper P1467R9. While considering adding the newly required overloads of math special functions to MSVC STL, I found that it may be more convenient to implement the whole overload set as a single function template.

However, it's unclear for me whether the every "overload for each cv-unqualified floating-point type", or every currently separately shown overloads in the synopsis of <cmath>, is required to be a separated function. As discussed in microsoft/STL#1335, if there were only a separated double overload (usually comes from the C standard library) and a fused template overload, calling the overload set with {} would be accepted, which is definitely ambiguous when there are separated float/double/long double overloads.

I think it may be better to allow implementations to arbitrarily fuse the required overloads.

[2022-05-17; Reflector poll]

Set priority to 2 after reflector poll. One vote for NAD.

Proposed resolution: