错误:无法匹配'(const std :: basic_string <char>)()'

Sad*_*dik 3 c++ map stdstring c++11

我有一个地图,将一对两个类映射到一个简单的字符串."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());
    }
Run Code Online (Sandbox Code Playgroud)

这行错误: parent->setName(iter->second());

有什么建议?

izo*_*ica 6

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