Я довольно новичок в шаблонном метапрограммировании.Это то, что я хотел сделать.
template <typename... Args>
void to_be_async_func(Args&&... args)
{
//want to use args[0...N-2] to invoke a function call
//and args[N-1(last)] to use a handler function after the prior call.
}
int main()
{
int a = 5;
int b = 3;
to_be_async_func(a, b, [](int res)
{
//do something with the result
//any Callable can be passed
});
}
Изначально я пытался сделать так, как
template<typename... Args, typename Callable>
void to_be_async_func(Args&&... args, Callable op)
{
}
Однако в этом случае «Callable» должен иметь значение по умолчанию, которое будет использоваться таким образом.
На мой взгляд, какая-то вспомогательная структура шаблона могла бы сделать это.
Если это возможно, не могли бы вы показать мне путь?
Заранее спасибо.
РЕДАКТИРОВАТЬ
Я также видел этот пост и пробовал в соответствии с инструкциями.
Это сработало.Но, как указано в тексте, я хочу знать, есть ли более стандартный способ достижения этого.