0
我得到一個C2440('初始化':無法從'std :: _ Vb_reference < _Alloc>'轉換爲'bool &'),該智能感知轉換爲標題錯誤。錯誤:非const的初始值必須是左值
我明白這個錯誤是在說什麼,只是不知道它爲什麼說。下面的代碼產生此錯誤:
std::vector<const UINT>::iterator oIter;
oIter = std::find(vecuClassID.begin(), vecuClassID.end(), uClassID);
const UINT uDistance = std::distance(vecuClassID.begin(), oIter);
bool& refbStaticSectionInitialized = *(vecbStaticSectionInitialized.begin() + uDistance);
的錯誤似乎在最後一行出現 - 在Visual Studio中,引用操作以紅色下劃線。這是令人困惑,因爲我有一些代碼,做同樣的事情與CRITICAL_SECTION,併產生任何錯誤:
std::vector<const UINT>::iterator oIter;
oIter = std::find(vecuClassID.begin(), vecuClassID.end(), uClassID);
const UINT uDistance = std::distance(vecuClassID.begin(), oIter);
CRITICAL_SECTION& refhStaticSection = *(vechStaticSection.begin() + uDistance);
是否有事可做與布爾是一個原始的?
什麼是'vecbStaticSectionInitialized' –
這是一個std :: bools向量。 vechStaticSection是CRITICAL_SECTION的向量。 – NmdMystery
'std :: vector'有點「破」,因爲它並不總是像你期望的那樣工作。檢查參考。 –
chris