閱讀文檔boost::atomic
和std::atomic
讓我很困惑atomic
接口是否應該支持非平凡類型?C++原子與非平凡類型?
也就是說,給定一個只能通過將讀/寫封閉在完整互斥體中才能寫入/讀取的(值)類型,因爲它有一個非平凡的copy-ctor/assignment操作符,是否應該受到std::atomic
的支持(因爲助推清楚地表明它是UB)。
我應該提供專業化的docs談論自己的非平凡類型?
注:我打這個,因爲我有一個跨線程回調對象boost::function<bool (void)> simpleFn;
需要設置/復位原子。擁有一個單獨的互斥/關鍵部分,甚至包裝在一個類似原子類型的幫助器類型中,並且看起來很簡單,但是有沒有什麼可以用的?
相關:http://stackoverflow.com/questions/13885617/how-to-use-stdatomic-effectively-for-non-primitive-types – 2016-08-24 13:40:03