我希望传入的回调函数既可以是传统的函数指针,也可以传入C++新标准中的匿名函数、std::function,那么我应该如何定义这个异步函数的原型呢?难道必须要分开分别定义吗?
C++编写异步函数的最佳实践一般是怎样的呢?
伊谢尔伦2017-04-17 11:46:00
// Function with any callable type as callback
template<typename Callable, typename ...Args>
void func_with_callback(int foo, int bar, Callable&& f, Args&&... args) {
// Do something
// ...
// Invoke callback
std::forward<Callable>(f)(std::forward<Args>(args)...);
}