私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では動作しませんか?
ここにお勧めしますか?ありがとう。
mutable mutexを試しましたか? – Danh
変更可能で問題を解決します!ありがとう! –