scavo di un vecchio progetto e voleva compilarlo, ma ha ricevuto diversi errori, alcuni di quelli che sono un C2664:C2664 in Visual Studio 2012 quando si utilizza 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 &&'
Le parti di codice rilevanti sono:
//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)));
//...
}
Ho provato a rendere i parametri di funzione const
, ma questo non ha aiutato.
Compilava bene in VS2010.
Per favore aiutami a scoprire cosa causa questo e come risolverlo.