Передача разных типов параметров в одну функцию
Подскажите пожалуйста, возможно ли в С++ или в Си реализовать передачу параметров разного типа в одну и ту же функцию ? При этом я имею ввиду не одно название функции к примеру с двумя разными перегрузками и двумя разными реализациями, а именно одну функцию с одной реализацией.
Ну к примеру:
int my_func_1(std::string my_string, int my_int)
{
char* my_char_p = strstr(&my_string[0], ",");
int my_int = my_char_p - &my_string[0];
return my_int;
}
int my_func_2(std::wstring my_wstring)
{
wchar_t* my_wchar_p = wcsstr(&my_wstring[0], L",");
int my_int = my_wchar_p - &my_wstring[0];
return my_int;
}
.
int my_func(int(*my_func_p) (...), ...)
{
int my_int = my_func_p(...);
return my_int;
}
int main()
{
int my_int = my_func(my_func_1, my_string, my_int);
int my_int = my_func(my_func_2, my_wstring);
}
Можно ли в функцию my_func() при ее первом вызове передать указатель на функцию my_func_1, а при втором вызове передать указатель на функцию my_func_2 - при том, что у my_func_1 и my_func_2 - так же разные параметры?