std::cout << "Enter decimal number: " ;
    std::cin >> input ;
    std::cout << "0x" << std::hex << input << '\n' ;
boolean、float、またはintの入力を追加すると、intメイン関数呼び出しで返されます...
With function templates, based on argument types, C generates separate functions to handle each type of call appropriately.  All function template definitions begin with the keyword template followed by arguments enclosed in angle brackets < and >.  A single formal parameter T is used for the type of data to be tested.  
Consider the following program where the user is asked to enter an integer and then a float, each uses the square function to determine the square.
With function templates, based on argument types, C generates separate functions to handle each type of call appropriately.  All function template definitions begin with the keyword template followed by arguments enclosed in angle brackets < and >.  A single formal parameter T is used for the type of data to be tested.  
Consider the following program where the user is asked to enter an integer and then a float, each uses the square function to determine the square.
#include <iostream>
 using namespace std;
template <class T>      // function template
T square(T);    /* returns a value of type T and accepts                  type T     (int or float or whatever) */
  void main()
{
int x, y;
float w, z;
cout << "Enter a integer:  ";
cin >> x;
y = square(x);
cout << "The square of that number is:  " << y << endl;
cout << "Enter a float:  ";
cin >> w;
z = square(w);
cout << "The square of that number is:  " << z << endl;
}
template <class T>      // function template
T square(T u) //accepts a parameter u of type T (int or float)
{
return u * u;
}
Here is the output:
Enter a integer:  5
The square of that number is:  25
Enter a float:  5.3
The square of that number is:  28.09