Closed kariya-mitsuru closed 10 years ago
@bolero-MURAKAMI さんに声をかけておきました。
additional overloadについて調べました。Marshal Clowのブログで解説されていました。
http://marshall.calepin.co/doing-a-good-job-with-ltcmathgt.html
以下のように、整数と浮動小数点数の任意の組み合わせを引数として渡すためのものなのですね。
pow (2, 2.0); // first parameter is integer
pow (2.0, 2LL); // second parameter is long long
現在、cpprefjpのcmath/powでは以下のように書かれていますが、
template<class Arithmetic1, class Arithmetic2>
Promoted pow(Arithmetic1 x, Arithmetic2 y);
これを関数テンプレートではなく、以下のように書いた方がいいという主張だと理解しました。
Promoted pow(Arithmetic1 x, Arithmetic2 y);
私はそれで問題ないと思います。
そうですね。 その際、Arithmetic1, Arithmetic2 といった表記は(Promoted が現在そうであるように)、 個別的な型と区別するために斜体表記したほうがよいと思います。
また、Promoted, Arithmetic といった型の表記が何を示すのかを cmath の概要ページに書いておいたほうがわかりやすいと思いました。
その対応で問題ないようでしたら僕がやっておきます。
+1
私も良いと思います。 complex の方も、ボレロさんの修正結果を見て合わせようと思います。
では、担当をボレロさんにしておきますね。
@bolero-MURAKAMI さんの対応が終わったという認識です。 一旦 @kariya-mitsuru さんを担当にしますので、変更を確認してOKなら閉じてください。
確認しました。クローズします。
C++11 では cmath の各関数に追加のオーバーロードが定義されたので、cpprefjp の説明では最後に関数テンプレートが記載されています。 しかし、規格書([c.math] p11)では追加のオーバーロードについて、どのような定義とすべきかは記載されていないため、極端な話関数テンプレートでなくても良いと思うので、関数テンプレートの形での記載は望ましくないと思うのですが、いかがでしょうか?