Передача разных типов параметров в одну функцию

Подскажите пожалуйста, возможно ли в С++ или в Си реализовать передачу параметров разного типа в одну и ту же функцию ? При этом я имею ввиду не одно название функции к примеру с двумя разными перегрузками и двумя разными реализациями, а именно одну функцию с одной реализацией.

Ну к примеру:

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 - так же разные параметры?


Ответы (0 шт):