The idea of the function prt() is to print a number, independent of the data type. We can use a template (or do it in a different way). The template <class T> applies for the general case. The specialization happens in template <>.
#include <iostream> using namespace std; template <class T> void prt(T b); template <class T> void prt( T b) { char buffer[100]; sprintf( buffer, " %d", b); cout << buffer << "\n"; } template <> void prt( float b) { char buffer[100]; sprintf( buffer, " %g", b); cout << buffer << "\n"; } main() { float x = 5; int i = 4; prt( x); prt( i); }