7

場合によっては同期オーバーヘッドが必要ない場合や、実際のミューテックスが必要ない場合に、 null_mutex(現在のところ)をドロップする機能が非常に便利だと思います。boost::interprocess::null_mutex

mutex新しい C++11クラスを使用しようとしていますが、相当するnull_mutexものが見つかりません。

はい、実装が簡単であることはわかっています (または、boost を引き続き使用できますが、可能な場合は、標準に固執しようとしており、小さな省略のように思えますか?)

4

1 に答える 1

10

Lockable概念の「null」実装を作成することにより、これをかなり簡単に行うことができます。

struct null_mutex
{
     void lock() {}
     void unlock() noexcept {}
     bool try_lock() { return true; }
};

これは std::lock_guard で動作します:

null_mutex mux;
std::lock_guard<null_mutex> guard(mux);
于 2012-11-16T09:41:40.983 に答える