У меня есть следующая проблема, связанная с итерацией по ассоциативному массиву строк, определенному с помощью std:: map.
-- snip --
class something 
{
//...
   private:
      std::map<std::string, std::string> table;
//...
}
В конструкторе я заполняю таблицу парами строковых ключей, связанных с строковыми данными. В другом месте у меня есть метод toString, который возвращает строковый объект, содержащий все ключи и связанные с ним данные, содержащиеся в объекте таблицы (в виде ключа = формат данных).
std::string something::toString() 
{
        std::map<std::string, std::string>::iterator iter;
        std::string* strToReturn = new std::string("");
        for (iter = table.begin(); iter != table.end(); iter++) {
           strToReturn->append(iter->first());
           strToReturn->append('=');
           strToRetunr->append(iter->second());
           //....
        }
       //...
}
Когда я пытаюсь скомпилировать, я получаю следующее
error: "error: no match for call to" (std:: basic_string, std:: allocator > )() ".
Может кто-нибудь объяснить мне, чего не хватает, что я делаю неправильно? Я только нашел некоторое обсуждение подобной проблемы в случае hash_map, где пользователь должен определить функцию хеширования, чтобы иметь возможность использовать hash_map с объектами std::string. Может быть, что-то похожее и в моем случае?
Спасибо!