错误:无法匹配调用&#39;(const std :: basic_string <char>)()&#39; </char>

时间:2014-04-15 11:51:14

标签: c++ c++11 map stdstring

我有一张地图,它将一对两个类映射到一个简单的字符串。 “FirstCollection”和“SecondCollection”是类,“myCollecttion”是其中之一的对象。 但是当迭代地图时,我遇到了编译错误:

错误:对'(const std :: basic_string)()'

的调用不匹配
typedef std::map <
    std::pair < Collection, Envelope::Envelope >
  , std::string > NameMap;

NameMap globalNameMap = map_list_of
        ( std::make_pair ( FirstCollection, Envelope::A ), "Something")
        ( std::make_pair ( SecondCollection, Envelope::B ), "Another thing")


    NameMap::const_iterator iter
            = globalNameMap.find( std::make_pair ( myCollection, myEnvelope ));

    if ( iter == globalNameMap.end() )
    {
          parent->setName("anything");
    } else {
          parent->setName(iter->second());
    }

此行中的错误:parent->setName(iter->second());

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

iter->second是一个成员变量而不是一个函数。删除括号:parent->setName(iter->second);