#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);
}
Aquí estoy usando plantillas en CPP, así que cuando llamo a la función sin big
pasar por argumentos double
y int
tipo, quiero la respuesta de retorno que es double
. El tipo aquí, devuelve en 32
lugar de 32.8
.
¿Cómo obtengo el resultado deseado? ¿Cómo escribir un tipo de big
función de retorno adecuado ?
std::max
se implementa. El tipo de retorno de una función debe conocerse en tiempo de compilación en C ++. Por lo tanto, no puede hacer que este tipo de retorno dependa del valor de tiempo de ejecución de sus parámetros. Es por eso que para dicha función, necesita que ambos parámetros tengan el mismo tipo (es decir, que tengan el tipo X, pero no Y).