簡體   English   中英

在C ++ 11中是否有與boost :: interprocess :: null_mutex等效的東西(例如std :: null_mutex)?

[英]Is there an equivalent to boost::interprocess::null_mutex in C++11 (e.g. std::null_mutex)?

我發現當我不想在某些情況下使用同步開銷而在其他情況下需要真正的互斥時,能夠null_mutex (當前是boost::interprocess::null_mutex )非常有用。

我試圖使用新的c ++ 11 mutex類,但我看不到null_mutex等價物 - 這讓我感到困惑..

是的,我知道實施它是微不足道的(或者我可以繼續使用增強,但在可能的情況下,我試圖堅持標准,似乎是一個小小的遺漏?)

通過創建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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM