Usar varios templates en una misma función

Iniciado por K-YreX, 14 Diciembre 2018, 21:44 PM

0 Miembros y 1 Visitante están viendo este tema.

K-YreX

Mi pregunta es si es posible definir una función con varios <templates>. Para que se entienda mejor os pongo un ejemplo sencillo, imaginad tener una función que devuelve el tamaño de una pila <stack> de cualquier tipo (sí, ya se que eso ya existe pero para hacer sencillo el ejemplo):
Código (cpp) [Seleccionar]

template <class T>
size_t stackSize(const stack<T> &s){
   return s.size();
}


Hasta aquí todo bien pero si queremos hacer una función que reciba dos pilas de distinto tipo y devuelva el tamaño de la más grande... La idea es algo así, pero tendríamos errores de compilación por un conflicto entre el tipo de la primera pila y el de la segunda si no son iguales.
Código (cpp) [Seleccionar]

template <class T>
size_t biggestStackSize(const stack<T> &st1, const stack<T> &st2){
   size_t size = st1.size();
   if(st2.size() > size)
       size = st2.size();
   return size;
}

Ya sé que en este caso podría hacerse sin tanta función ni <template> pero es posible hacerlo así definiendo dos <template> distintos?? :huh:
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

CalgaryCorpus

Aqui mi perfil en LinkedIn, invitame un cafe aqui