Ich würde sagen, ich bin kein Experte für die Verwendung der STL. Hier ist mein Problem, ich habe eine Klasse namens LdapClientManager, die eine Anzahl von LDAP-Clients verwaltet, die von ID verwaltet werden. Der Behälter der LdapClients hält, wird als Mitglied Variable deklariert dh"Klasse Std :: Karte ohne Vorlage Parameter verwendet" Fehler
typedef std::map<int, LdapClient *> LdapClientMap;
LdapClientMap _ldapClientMap;
Die folgende Funktion mit dem Fehler kompilieren fehlschlägt:
LdapClient * LdapClientManager::getLdapClient(unsigned int templateID)
{
// Do we have an LdapClient
LdapClientMap::const_iterator it = _ldapClientMap.find(templateID);
if (it == std::map::end) {
// no existing client, lets create it
LdapClient * ldapClient = new LdapClient();
if (ldapClient == NULL) {
// TODO: handle out of memory condition
}
_ldapClientMap[templateID] = ldapClient;
return ldapClient;
}
return it->second;
}
Leider bekomme ich folgende Fehlermeldung bei der Kompilierung, was bedeutet es . Ich habe noch keine Lösung in Google gefunden.
LdapClientManager.cc: In Memberfunktion LdapClient* LdapClientManager::getLdapClient(unsigned int)': LdapClientManager.cc:33:
Template-Klasse std :: map‘ohne Vorlage verwendeten Parameter
Nur eine Anmerkung, neue gibt NULL nicht aus Speicherbedingungen zurück (es sei denn, Sie verwenden alte Compiler wie VC6). Es löst std :: bad_alloc aus. – Naveen