Skip to content

Latest commit

 

History

History
74 lines (52 loc) · 1.58 KB

File metadata and controls

74 lines (52 loc) · 1.58 KB

atomic_is_lock_free

  • memory[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp11[meta cpp]
namespace std {
  template <class T>
  bool atomic_is_lock_free(const shared_ptr<T>* p);
}

概要

shared_ptrオブジェクトがロックフリーに振る舞えるかを判定する。

要件

p != nullptrであること。

戻り値

*pオブジェクトに対する操作がロックフリーに振る舞えるならtrue、そうでなければfalseを返す。

falseを返す場合は、ロックで実装されることを意味する。

例外

投げない

#include <iostream>
#include <memory>

int main()
{
  std::shared_ptr<int> p(new int(3));

  if (std::atomic_is_lock_free(&p)) {
    std::cout << "shared_ptr<int> is lock-free" << std::endl;
  }
  else {
    std::cout << "shared_ptr<int> isn't lock-free" << std::endl;
  }
}
  • std::atomic_is_lock_free[color ff0000]

出力例

shared_ptr<int> isn't lock-free

バージョン

言語

  • C++11

処理系

参照