問題があります。スレッドコードにこのポインターがあり、そこで変更されていますが、メインに戻ると、次のように変更はありません。
スレッド
void threaded_function(Model_factory &mf, ppa::Node *root) { // threads management
try { // n try...
主要
int main(int argc, char *argv[]) { ...
主にノードルートを作成しています。スレッドでは、ノードにシーケンスが与えられ、次のように true に変化する bool があります。
ppa::Node *root;
そして、スレッドが機能している(スレッドグループ)で、必要に応じてそのブール値を取得および設定できますが、スレッドグループがすべての結合で終了すると(これはブーストです)、ポインタールートはこの行で0を返します
cout << root->has_sequence() << endl;
これが続き、ノードが再び何かで満たされると、なぜノードポインタがスレッドの変更を反映していないのか、それは設計なのか、それとも間違っているのか (おそらく 2 番目)、どうすればよいかを尋ねたいと思います。グローバルルートノードで問題は解決しますが、なぜですか?