这个问题在这里得到部分答案What does "typedef void (*Something)()" mean
但答案对我来说并不完全清楚。
如果我写
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
答案 0 :(得分:2)
就是这样:
thread_pool(unsigned int num_threads, void (*tbd) ())
也就是说,类型是函数签名,唯一的“单词”是“void”。 typedef名称“task”在此示例中消失,因为我们不再使用typedef。