Вы можете сделать следующее:
#include <iostream>
#include <string>
void f(int a, std::string b, int c)
{
std::cout << a << " -- " << b << " -- " << c << std::endl;
}
void someFunc(void (inner)(int, std::string, int), int a, std::string b, int c)
{
inner(a, b, c);
}
int main()
{
int a = 5;
std::string b("text");
int c = 10;
someFunc(f, a, b, c);
return 0;
}
Также возможно явно передать указатель или ссылку:
void someFunc(void (*inner)(int, std::string, int), int a, std::string b, int c)
// OR
void someFunc(void (&inner)(int, std::string, int), int a, std::string b, int c)
Если вы используете синтаксис указателя, выможет заменить вызов на:
someFunc(&f, a, b, c);
Но в любом случае компилятор автоматически заменит ваш синтаксис указателем, поэтому вам не нужно явно использовать синтаксис указателя в C ++.
Надеюсь, это поможет.