// ==========================================================================
// $Id: func_template.cpp,v 1.2 2014/10/22 20:26:07 jlang Exp $
// CSI2372 example Code for lecture 9
// ==========================================================================
// (C)opyright:
//
//   Jochen Lang
//   SITE, University of Ottawa
//   800 King Edward Ave.
//   Ottawa, On., K1N 6N5
//   Canada. 
//   http://www.site.uottawa.ca
// 
// Creator: jlang (Jochen Lang)
// Email:   jlang@site.uottawa.ca
// ==========================================================================
// $Log: func_template.cpp,v $
// Revision 1.2  2014/10/22 20:26:07  jlang
// Update for use of array and forward_list.
//
// Revision 1.1  2006/10/29 00:32:05  jlang
// Check in for lecture 9
//
//
// ==========================================================================
#include <iostream>

using std::cout;
using std::endl;

template <typename T> 
inline const T& min(const T& g, const T& d) { 	
  return ((g < d) ? g : d); 
}

int main() {
  int i1=4,i2=3,i3;
  double d1=3.14,d2=10.17,d3;
  
  i3 = min<int>(i1,d2);
  cout << i3 << " = min(i1,i2)" << endl;
  d3 = min(d1,d2);
  cout << d3 << " = min(d1,d2)" << endl;
}
