概要
conj-if-needed
は、std::complex
などの複素数型に対して複素共役を求める、説明専用の関数オブジェクトである。
型T
の式E
に対して、式conj-if-needed(E)
は次と等価である。
-
T
が算術型でなく、式conj(E)
が下記宣言を含むコンテキストにおいてオーバーロード解決を行った結果が妥当であるとき、conj(E)
template<class T> T conj(const T&) = delete;
-
そうでなければ、
E
備考
オーバーロード解決により選択された関数が入力値の複素共役(complex conjugate)を返さないとき、プログラムは不適格となる。
バージョン
言語
- C++26