1
我實現了一個ReadLock類似以下內容:錯誤:調用沒有匹配的函數 '的boost :: shared_lock <提振:: shared_mutex> :: shared_lock(常量樂扣樂)'
在我myClass.h
#include <boost/thread/locks.hpp>
#include <boost/thread/shared_mutex.hpp>
typedef boost::shared_mutex Lock;
typedef boost::shared_lock<Lock> ReadLock;
Lock myLock;
在myClass.cpp:
void ReadFunction() const
{
ReadLock r_lock(myLock); // Error!
//Do reader stuff
}
的代碼在VS2010但GCC4.0失敗。編譯器在ReadLock上拋出錯誤,說沒有匹配的函數。我懷疑是變量myLock的「const」正確性問題。當我在函數聲明中刪除了const時,錯誤消失了。有人可以向我解釋這一點嗎?爲什麼這可以在windows下運行,但不能在gcc下運行?
此處有任何建議嗎?謝謝。
你試過可變互斥嗎? – Danh
mutable解決問題!謝謝! –