Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: K-YreX en 14 Diciembre 2018, 21:44 pm



Título: Usar varios templates en una misma función
Publicado por: K-YreX en 14 Diciembre 2018, 21:44 pm
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
  1. template <class T>
  2. size_t stackSize(const stack<T> &s){
  3.    return s.size();
  4. }

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
  1. template <class T>
  2. size_t biggestStackSize(const stack<T> &st1, const stack<T> &st2){
  3.    size_t size = st1.size();
  4.    if(st2.size() > size)
  5.        size = st2.size();
  6.    return size;
  7. }
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:


Título: Re: Usar varios templates en una misma función
Publicado por: CalgaryCorpus en 14 Diciembre 2018, 21:59 pm
Código
  1. template <typename T1, typename T2>