0
我有一個struct
,它由在兩個動態鏈接庫(或共享對象)之間共享的普通舊數據組成。 (用C++ 11編譯)。較低級別的std :: atomic <unsigned int>
其中一個數據成員必須是原子類型,或者更確切地說,我需要能夠自動應用前綴++
和--
。
我擔心會員使用std::atomic<unsigned int>
,因爲我認爲這會將兩個庫綁定到使用相同的STL實現。
所以我寧願使用std::uint32_t
作爲成員,並將原子操作應用於庫中的該成員。只有我無法弄清楚如何做到這一點,除了使用互斥會降低性能到不可接受的程度。
總之我怎麼可以這樣做可以使用通過標準C++ 11功能
std::int32_t foo;
atomic_increment(foo);
?
你的問題是如何解決某些問題,當你不能依賴C++標準,並且你想要一個C++標準的答案。這沒有意義。 – 2014-10-02 11:29:08
爲什麼不使用std :: atomic在共享庫中實現它,並導出一個stl-independant接口? – galinette 2014-10-02 11:35:07