Overriding a template function. : Function Template « Function « C++






Overriding a template function.

   
#include <iostream>
using namespace std;
   
template <class X> void swapargs(X &a, X &b)
{
  X temp;
   
  temp = a;
  a = b;
  b = temp;
  cout << "Inside template swapargs.\n";
}
   
// This overrides the generic version of swapargs() for ints.
void swapargs(int &a, int &b)
{
  int temp;
   
  temp = a;
  a = b;
  b = temp;
  cout << "Inside swapargs int specialization.\n";
}
   
int main()
{
  int i=10, j=20;
  double x=10.1, y=23.3;
  char a='x', b='z';
   
  cout << "Original i, j: " << i << ' ' << j << '\n';
  cout << "Original x, y: " << x << ' ' << y << '\n';
  cout << "Original a, b: " << a << ' ' << b << '\n';
   
  swapargs(i, j); // calls explicitly overloaded swapargs()
  swapargs(x, y); // calls generic swapargs()
  swapargs(a, b); // calls generic swapargs()
   
  cout << "Swapped i, j: " << i << ' ' << j << '\n';
  cout << "Swapped x, y: " << x << ' ' << y << '\n';
  cout << "Swapped a, b: " << a << ' ' << b << '\n';
   
  return 0;
}
  
    
    
  








Related examples in the same category

1.A generic mode finding function.A generic mode finding function.
2.Function template: swap valuesFunction template: swap values
3.Simple template function to accept two parametersSimple template function to accept two parameters
4.template function for find a valuetemplate function for find a value
5.Creating a custom algorithm based on templateCreating a custom algorithm based on template
6.find all template function
7.Using a Binary Function to Multiply Two Ranges
8.Making a Sequence of Random Numbers
9.write function object
10.Use a Function Object to Hold state
11.template function for bubble sort
12.template function for compacting the items
13.Template copy array function
14.function template for getting the max value
15.Using Standard Parameters with Template Functions