wbijam się stary projekt i chciał go skompilować, ale otrzymała kilka błędów, kilka z tych, będąc c2664:c2664 w Visual Studio 2012 przy użyciu make_pair
error C2664: 'std::make_pair' : cannot convert parameter 1 from 'CUser *' to 'CUser *&&'
error C2664: 'std::make_pair' : cannot convert parameter 1 from 'unsigned long' to ' unsigned long &&'
Odpowiednie fragmenty kodu są:
//typedef for the userdata map
typedef std::map<unsigned long, std::pair<CUser*,userstatus*>> UserDataMapType;
//...
Inc::incret CUserManager::AddUser(unsigned long ID, CUser* pUser, userstatus* pUserStatus)
{
//...
std::pair<UserDataMapType::iterator, bool> ret = m_mapUserData.insert(std::make_pair<unsigned long, std::pair<CUser*, userstatus*>>(ID, std::make_pair<CUser*, userstatus*>(pUser, pUserStatus)));
//...
}
Próbowałem ustawić parametry funkcji const
, ale to nie pomogło.
W VS2010 wszystko poszło dobrze.
Proszę, pomóżcie mi znaleźć przyczynę tego i jak go rozwiązać.