Я должен сказать, что я не эксперт по использованию STL. Вот моя проблема, у меня есть класс Called LdapClientManager, который поддерживает несколько клиентов LDAP, которые управляются ID. Контейнер, содержащий LdapClients, объявляется как переменная-член, т.е.
typedef std::map<int, LdapClient *> LdapClientMap;
LdapClientMap _ldapClientMap;
Следующая функция не компилируется с ошибкой:
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;
}
К сожалению, я получаю следующую ошибку во время компиляции, что это значит. Я еще не нашел решение в Google.
LdapClientManager.cc: в функции-члене LdapClient*
LdapClientManager::getLdapClient(unsigned int)':
LdapClientManager.cc:33:
шаблон класса std :: map ', используемый без параметров шаблона