更新我的文件到boost_1.59.0
後,我得到一個ambyguous錯誤。我不明白什麼是錯的,因爲在1.43所有的工作都很好。Boost 1.59編譯錯誤
這是我的助推聲明和我的功能。
boost::unordered_map<VID, size_t>::iterator iterTargetMap = rSkillUseInfo.TargetVIDMap.find(TargetVID);
if (rSkillUseInfo.TargetVIDMap.end() != iterTargetMap)
{
size_t MaxAttackCountPerTarget = 1;
switch (SkillID)
{
case SKILL_SAMYEON:
case SKILL_CHARYUN:
MaxAttackCountPerTarget = 3;
break;
}
if (iterTargetMap->second >= MaxAttackCountPerTarget)
{
sys_log(0, "SkillHack: Too Many Hit count from SkillID(%u) count(%u)", SkillID, iterTargetMap->second);
return false;
}
iterTargetMap->second++;
}
else
{
rSkillUseInfo.TargetVIDMap.insert(std::make_pair(TargetVID, 1));
}
我也試圖與auto
C++ 11
auto iterator iterTargetMap = rSkillUseInfo.TargetVIDMap.find(TargetVID);
這是我的錯誤日誌gcc49 http://pastebin.com/p1KLqs9H 我不能寫在這裏的錯誤是太大了。
我被困在這個錯誤4天。 :(
這裏是vid.h
class VID
{
public:
VID() : m_id(0), m_crc(0)
{
}
VID(DWORD id, DWORD crc)
{
m_id = id;
m_crc = crc;
}
VID(const VID &rvid)
{
*this = rvid;
}
const VID & operator = (const VID & rhs)
{
m_id = rhs.m_id;
m_crc = rhs.m_crc;
return *this;
}
bool operator == (const VID & rhs) const
{
return (m_id == rhs.m_id) && (m_crc == rhs.m_crc);
}
bool operator != (const VID & rhs) const
{
return !(*this == rhs);
}
operator DWORD() const
{
return m_id;
}
void Reset()
{
m_id = 0, m_crc = 0;
}
private:
DWORD m_id;
DWORD m_crc;
};
什麼是* VID *?它看起來像是遺漏了一個* hash *函數來用作地圖中的一個鍵。有關更多詳細信息,請參見http://en.cppreference.com/w/cpp/utility/hash。 – skypjack
VID是玩家姓名(ID)。我正在開發一款在線遊戲MMORPG。編輯的問題。看看vid.h – Scar