有没有办法让函数自动检测其参数的数据类型?(请不要建议功能重载)

Use*_*CPP -3 c++ overloading function type-conversion

我想要做的是如下:

 (some data type say x) function_name((same data type x mentioned earlier) variable_name) 
 {
 /* Function body */
 }

 int main()
 {
 (data type x mentioned above) var;
 function_name(var);
 .....
 }
Run Code Online (Sandbox Code Playgroud)

比如我

 int function_name(int x)

 int main()
 {
 int y;
 function_name(y);
 ....}
Run Code Online (Sandbox Code Playgroud)

在main()中,我通过上面的函数传递一个int变量现在我想要一个与上面的函数完全相同的函数的另一个函数,但只是参数的数据类型和返回类型不同,比如说

unsigned long long FUNCTION_NAME_SAME_DEFINITION_AS_function_name(unsigned long long x)
Run Code Online (Sandbox Code Playgroud)

有没有办法可以合并上面两个函数,而不使用函数重载?意味着函数检测到哪个数据类型的变量通过它?如果我传递类型1的参数,则返回数据类型1的值,如果我传递类型2的参数,则返回数据类型2的值.

yur*_*hek 9

你的意思是模板?

template <typename T>
T function_name(T variable_name) 
{
    /* Function body */
}
Run Code Online (Sandbox Code Playgroud)

读书等等.