Boost.Threadのコンストラクタは実体渡し

Boost.Threadのコンストラクタに関数オブジェクトを渡して処理をさせ、終了後に関数オブジェクトから結果を取り出そうとしたところ、何も結果が入っていないというバグに遭遇しました。で、関数オブジェクト内の処理が悪いのかと思ってしばらく悩んだのですがそうではなく、Boost.Threadのコンストラクタが実体渡しなので、別のオブジェクトとして実行されていたというだけでした。とてもくだらない話ではありますが、これ前にも悩んだ気がするので忘れないよう記録しておきます。