#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);
}
Tutaj używam szablonów w CPP, więc kiedy big
wywołuję funkcję z pominięciem argumentów double
i int
typu, chcę uzyskać odpowiedź zwrotną, która jest double
. Wpisz tutaj, zwraca 32
zamiast 32.8
.
Jak uzyskać pożądaną wydajność? Jak napisać odpowiedni typ zwracanej big
funkcji?
std::max
jest wdrażany. Zwracany typ funkcji musi być znany w czasie kompilacji w C ++. Dlatego nie można mieć tego typu zwrotu zależnego od wartości środowiska wykonawczego parametrów. Dlatego dla takiej funkcji potrzebne są oba parametry, aby mieć ten sam typ (tj. Mieć typ X, ale nie Y).