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

2835. LWG 2536 seems to misspecify <tgmath.h>

Section: 17.14 [support.c.headers], 99 [depr.ctgmath.syn] Status: C++17 Submitter: Thomas Koeppe Opened: 2016-11-29 Last modified: 2023-02-07

Priority: 0

View all other issues in [support.c.headers].

View all issues with C++17 status.

Discussion:

The resolution of LWG 2536(i) touches on the specification of C headers (of the form foo.h), but while it fixes the specification of complex.h, it fails to address the specification of tgmath.h.

Just like complex.h, tgmath.h is not defined by C. Rather, our tgmath.h behaves like <ctgmath>, which is specified in [ctgmath.syn].

Suggested resolution:

Amend [depr.c.headers] p3 as follows:

3. The header <complex.h> behaves as if it simply includes the header <ccomplex>. The header <tgmath.h> behaves as if it simply includes the header <ctgmath>.

4. Every other C header […]

See also LWG 2828(i).

[2017-01-27 Telecon]

Priority 0

Proposed resolution:

This wording is relative to N4618.

  1. Edit [depr.c.headers] as indicated:

    […]

    -2- The use of any of the C++ headers […] is deprecated.

    -3- The header <complex.h> behaves as if it simply includes the header <ccomplex>. The header <tgmath.h> behaves as if it simply includes the header <ctgmath>.

    -4- Every other C header, […]