ToB企服应用市场:ToB评测及商务社交产业平台

标题: 函数模板_构造函数栈溢出 [打印本页]

作者: 瑞星    时间: 2023-10-4 13:01
标题: 函数模板_构造函数栈溢出
前言

最近写一个任务队列,可以支持存入返回值为void的任意函数对象。需要定义一个Task模板,来存储函数对象以及参数。大致的实现如下:
  1. class Task
  2. {
  3. public:
  4.     template <typename Func, typename... Args>
  5.     Task(Func&& f, Args &&...args)
  6.         : func_(std::bind(std::forward<Func>(f), std::forward<Args>(args)...)) {}
  7.     void operator()()
  8.     {
  9.         func_();
  10.     }
  11. private:
  12.     std::function<void()> func_;
  13. };
复制代码
其中构造函数是一个函数模板,可以在编译的时候,根据传入的函数对象和参数,绑定生成std::function,存储在func_中。
支持形如
[code]auto f1 = [](int i, int j){    std::cout




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4