最終更新日時:
が更新

履歴 編集

class
<thread>

std::thread::id(C++11)

namespace std {
  class thread::id {
  public:
    id() noexcept;
  };

  bool operator==(thread::id x, thread::id y) noexcept;
  bool operator!=(thread::id x, thread::id y) noexcept;
  bool operator<(thread::id x, thread::id y) noexcept;
  bool operator<=(thread::id x, thread::id y) noexcept;
  bool operator>(thread::id x, thread::id y) noexcept;
  bool operator>=(thread::id x, thread::id y) noexcept;

  template<class charT, class traits>
  basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& out, thread::id id);

  template <class T> struct hash;
  template <> struct hash<thread::id>;
}

概要

スレッド識別子。trivially copyable class。

実行のスレッドに対して一意なthread::idが対応づけられる。デフォルトコンストラクトされたthread::idはいかなるスレッドとも対応付けられない(ポインタ型におけるnullptrのようなもの)。

終了したスレッドを表す識別子の値は、再利用される可能性がある。

メンバ関数

名前 説明 対応バージョン
id() noexcept デフォルトコンストラクタ。いかなるスレッドも指さない識別子を生成する。 C++11

比較演算子

名前 説明 対応バージョン
operator== 等値比較 C++11
operator!= 非等値比較 C++11
operator< 左辺が右辺より小さいかの判定を行う C++11
operator<= 左辺が右辺以下かの判定を行う C++11
operator> 左辺が右辺より大きいかの判定を行う C++11
operator>= 左辺が右辺以上かの判定を行う C++11

ストリーム出力

名前 説明 対応バージョン
operator<< thread::idのストリーム出力。 フォーマットは未規定だが、他の識別子と異なることがわかる表現となる。 C++11

hashサポート

名前 説明 対応バージョン
hash thread::idでの特殊化 (class template) C++11

#include <iostream>
#include <thread>

int main()
{
  const std::thread::id main_tid = std::this_thread::get_id();
  std::cout << "main=" << main_tid << std::endl;
  return 0;
}

出力例

main=824a30

バージョン

言語

  • C++11

処理系

参照