native_handle_type native_handle();
概要
ミューテックスのハンドルを取得する。
効果
この関数は、実装依存のミューテックスハンドルを返す。
- Unix系環境におけるlibstdc++とlibc++では、pthreadライブラリのミューテックス型
pthread_mutex_t*
を表す。 - Visual C++では、付属ライブラリの同時実行ランタイムの型
concurrency::critical_section*
を表す。ただし、native_handle
の戻り値はそれをvoid*
にキャストした値であり、native_handle_type
はvoid*
である。
ハンドル型に対する操作は汎用的ではないため、環境依存のプログラミングが必要な場合に使用する。
戻り値
実装依存のミューテックスハンドル
例
// libstdc++(pthread)環境での、ミューテックスの優先順位上限取得
#include <iostream>
#include <mutex>
#include <pthread.h>
int main()
{
std::mutex mtx;
// ミューテックスの優先順位上限を取得する
int prioceiling = 0;
pthread_mutex_getprioceiling(mtx.native_handle(), &prioceiling);
std::cout << prioceiling << std::endl;
}
出力例
0
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.7.0 ✅
- ICC: ??
- Visual C++: 2012 ✅, 2013 ✅, 2015 ✅