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: 99 [depr.c.headers], 99 [depr.ctgmath.syn] Status: C++17 Submitter: Thomas Koeppe Opened: 2016-11-29 Last modified: 2020-09-06

Priority: 0

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

View all issues with C++17 status.

Discussion:

The resolution of LWG 2536 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.

[2017-01-27 Telecon]

Priority 0

Proposed resolution:

This wording is relative to N4618.

1. Edit 99 [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, […]