0

此处部分回答了此问题“typedef void (*Something)()”是什么意思

但答案对我来说并不完全清楚。

如果我写

typedef void (*task) ();

它是如何扩展的?

thread_pool(unsigned int num_threads, task tbd) {
      for(int i = 0; i < num_threads; ++i) {
        the_pool.push_back(thread(tbd));
      }
    }

会是这个样子吗?

thread_pool(unsigned int num_threads, (*task) () tbd) {
      for(int i = 0; i < num_threads; ++i) {
        the_pool.push_back(thread(tbd));
      }
    }

可能不是,因为它是语法错误。我希望你能帮我把事情弄清楚。

代码示例来自http://www.thesaguaros.com/openmp-style-constructs-in-c11.html

4

1 回答 1

2

就像这样:

thread_pool(unsigned int num_threads, void (*tbd) ())

也就是说,类型是函数签名,唯一的“单词”是“void”。typedef 名称“task”在此示例中消失了,因为我们不再使用 typedef。

于 2013-02-09T12:44:44.200 回答