class c
{
public:
int id;
boost::thread_group thd;
c(int id) : id(id) {}
void operator()()
{
thd.create_thread(c(1));
cout << id << endl;
}
};
私はクラスcを作成しました。各クラスオブジェクトは、作業を処理するためにスレッドを作成します。私はこのクラス内のthread_groupを使用したC++ブースト
をコンパイルするときしかし、私はこの奇妙なメッセージが表示されます:エラーC2248:「後押し:: thread_groupを:: thread_group」:プライベートメンバにアクセスすることはできませんが、クラス内で宣言「ブースト:: thread_group」
を加えて、ちょうどであると仮定します再帰呼び出しの問題はありません。
しかし、メンバー変数と関数を持つクラスオブジェクトを作成する必要があります。だから私は単一の関数としてスレッドを作ることはできません。私は上記のようにクラスオブジェクトを作成するためにとにかくありますか? – Jaebum
@ LeeJae私の答えで述べたように、ある種のポインタにboost :: thread_groupを格納する必要があります。私はshared_ptrを提案します。 – Lalaland
[ここ](http://ideone.com/rb8qx)がその例です。 – Lalaland