Универсальный держатель функций в C ++ - PullRequest
0 голосов
/ 15 мая 2018

Так что я знаю, как использовать typedef в C ++

Но если я хочу иметь массив универсальных функций, могу ли я это сделать?

Например:

foo() { cout << "hello world" << endl; }


foo2(int a) { cout << "hello friend number " << a << endl; }


var_type[] function_holder = { foo, foo2 }

function_holder[0]();
function_holder[1](1);

1 Ответ

0 голосов
/ 15 мая 2018

Просто используйте std::function:

std::function<void()> functions[] = { 
   foo, 
   std::bind( foo2, 1 )
};

for( auto f : functions ) f();

живой пример

...