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 を使用していないため、typedef 名の「task」が消えています。

于 2013-02-09T12:44:44.200 に答える