¡Nuevo!  por fin disponible la versión 5 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


Instanciación explícita

Ejemplo:

Definición off-line de un método genérico definido de forma explícita.  En este caso se trata de un método de la clase de los enteros (int) que está preconstruida en el lenguaje.

#include <iostream>
using namespace std;

template<class T> bool igual(T& a, T& b) { // funcion generica
  return (a == b) ? true : false;
};

bool igual(int& a, int& b) {        // instancia explícita
  return (abs(a-b) < 5) ? true : false;
};
 
template bool igual<float>(float& a, float& b); // instanciación explicita

void main() {         // =====================
  int x = 2, y = 3;
  double d1 = 2.0, d2 = 2.2;
  float f1 = 2.0, f2 = 2.2;
  long double l1 = 2.0, l2 = 2.2;

  if ( igual(x, y) )
     cout << "enteros iguales" << endl;
  else
     cout << "enteros distintos" << endl;
  if ( igual(d1, d2) )
     cout << "doubles iguales" << endl;
  else
     cout << "doubles distintos" << endl;
  if ( igual(f1, f2) )
     cout << "float iguales" << endl;
  else
     cout << "float distintos" << endl;
  if ( igual(l1, l2) )            // instanciación implícita
     cout << "long double iguales" << endl;
  else
     cout << "long double distintos" << endl;
}

Salida:

enteros iguales
doubles distintos
float distintos
long double distintos