#include <iostream>
using namespace std;
template <class X, class Y>
Y big(X a, Y b)
{
if (a > b)
return (a);
else return (b);
}
int main()
{
cout << big(32.8, 9);
}
ここではCPPでテンプレートを使用しているためbig
、double
とint
typeの引数をバイパスして関数を呼び出すと、である返答が必要ですdouble
。ここではタイプで、の32
代わりに返されます32.8
。
どのようにして希望の出力を得るのですか big
関数の適切な戻り値の型を記述する方法は?
std::max
に実装されているかを確認したい場合があります。関数の戻り値の型は、C ++でのコンパイル時にわかっている必要があります。したがって、この戻り値の型をパラメーターのランタイム値に依存させることはできません。これが、そのような関数の場合、両方のパラメーターが同じタイプ(つまり、タイプXであるがYではない)である必要がある理由です。