<ctgmath>ヘッダは、<complex>と<cmath>をインクルードするだけのヘッダである。名前はC言語の型総称数学関数のヘッダ<tgmath.h>に対応しているが、C言語の型総称マクロは提供しない。
C言語の<tgmath.h>は、引数の型に応じてsqrtf()・sqrt()・sqrtl()・csqrt()などを呼び分けるsqrtのようなマクロ (型総称マクロ) を定義する。C++では同じことが<complex>と<cmath>のオーバーロードによって実現されているため、型総称マクロに相当する機能は必要ない。
非推奨・削除の詳細
- C99互換のためにC++11で追加されたが、ほかのヘッダをインクルードするだけでC言語の型総称マクロを提供しないため、C++17で非推奨となり、C++20で削除された
- C++11では、本ヘッダは
<ccomplex>と<cmath>をインクルードすると規定されていた。C++17で、<ccomplex>が非推奨となったことにあわせて、<complex>をインクルードするよう変更された
バージョン
言語
- C++11
関連項目
<complex><cmath><ccomplex>: 同じ経緯で非推奨・削除されたヘッダ
参照
- P0063R3 C++17 should refer to C11 instead of C99
- C++17で、本ヘッダが非推奨となった。あわせて、インクルードするヘッダが
<ccomplex>から<complex>へ変更された
- C++17で、本ヘッダが非推奨となった。あわせて、インクルードするヘッダが
- P0619R4 Reviewing Deprecated Facilities of C++17 for C++20
- C++20で、本ヘッダが削除された