void Test
{
boost::thread::id id0 = boost::this_thread::get_id();
int iThreadId = id0; // ***here, how could I cast 'id0' to 'iThreadId'***
}
誰かがそれを行う方法を教えてもらえますか?
void Test
{
boost::thread::id id0 = boost::this_thread::get_id();
int iThreadId = id0; // ***here, how could I cast 'id0' to 'iThreadId'***
}
誰かがそれを行う方法を教えてもらえますか?
std::hash<>
に特化していますstd::hash<std::thread::id
おそらく、boost::thread::id
同じです。
だからあなたは使うことができます
std::hash<boost::thread::id>(thread_id);
積分表現を取得します。もちろん、(悲しいことに)これはハッシュとして使用されることになっているため、結果のハッシュが各スレッドで一意であるという保証はありません。ライブラリ (のバージョン) のドキュメントを参照することは引き続き有効です。
ただし、たとえば のキーとして使用するだけでunordered_map
あれば、心配する必要はありません。
または、これを c++11 より前のスレッド ソリューションと「API 互換」にしたい場合で、実装に依存する機能の使用を気にしない場合は、std::thread::native_handle
. これは、「古い」スレッド API が公開していたものと同じタイプである可能性が高くなります。(std::thread::native_handle_type
は実装定義)