一連のローカル変数を作成し、それらのアドレスを別のスレッドで実行される関数に渡す関数があります-次のようなものです:
void MyFunction()
{
MyClass a;
AnotherClass b;
...
FinalClass z;
CallFunctionInNewThread(&a,&b,&c,...,&z);
}
もちろん、これらの変数はMyFunctionがスコープ外になると破棄されるため(スレッド内の関数がガベージを指しているようになります)、このセットアップは機能しません。ここでの私のオプションは何ですか?'new'を使用してヒープに変数を割り当てた場合、それらを削除する機会はありません。それらをスマートポインターなどにすると、スレッド関数にスマートポインターとして受け入れさせる必要があります。そうしないと、参照カウントが増加しないため、すぐに破棄されます。MyFunctionのラッパークラスのメンバー変数になりたいようですが、数百行と数十行あり、それは非常に厄介です。他に選択肢はありますか?