2
我有QMutex m_mutex;
作爲我的類中的私有字段,我嘗試從其中一個方法使用QMutexLocker
鎖定它,但是當我嘗試構建它時,出現C2530錯誤(我的編譯器是MSVC 2015)。QMutexLocker,QMutex C2530引用必須初始化
#include <QObject>
#include <QMutex>
#include <QMutexLocker>
class MyClass : public QObject
Q_OBJECT
public:
MyClass(QObject *parent = 0) : QObject(parent) {}
void setValue(const SomeEnum& val)
{
QMutexLocker(&m_mutex) // C2530
m_enum = val;
}
private:
QMutex m_mutex;
SomeEnum m_enum;
};
編輯:它的工作原理,當我使用&this->m_mutex
***但是當我嘗試構建它時,出現C2530錯誤***如果您從「輸出」選項卡中發佈了錯誤消息的確切文本,它會幫助您解決問題。 – drescherjm
@drescherjm確切的錯誤消息在標題中。 **錯誤C2530:引用必須初始化**問題可以通過預先加入this->來解決,但是我不明白爲什麼沒有'this->'它不能工作,也許這只是MSVC錯誤,他們已經自2015年以來,他們的編譯器改變了很多... BR – lll
哦,我現在看到了。你想'QMutexLocker mylock(&m_mutex)'而不是'QMutexLocker(&m_mutex)' – drescherjm