最終更新日時:
が更新

履歴 編集

<ctgmath>

ctgmath(C++11)(C++17で非推奨)(C++20で削除)

<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で削除された
    • 代替機能として、<complex>と<cmath>を直接インクルードすること
  • C++11では、本ヘッダは<ccomplex>と<cmath>をインクルードすると規定されていた。C++17で、<ccomplex>が非推奨となったことにあわせて、<complex>をインクルードするよう変更された

バージョン

言語

  • C++11

関連項目

参照