Вот два простых примера как это можно сделать:
#include <iostream>
#include <functional>
void f(const std::string& str) {
std::cout << str;
}
void foo(void (*f)(const std::string&), const std::string& str) {
f(str);
}
void Foo(std::function<void(const std::string&)> F, const std::string& str) {
F(str);
}
int main() {
foo(f, "Hello");
Foo(f, " world");
return 0;
}
foo
пример без использования STL
Foo
пример с использованием STL
Но возможно, если ты планируешь передавать функции с разными аргументами и их количествами, то можно попробовать сделать через какой-нибудь
std::initializer_list
, но таким образом и все функции тоже нужно переделать чтобы они принимали этот тип.