其他分享
首页 > 其他分享> > c – 错误:调用'(const std :: basic_string)()’不匹配

c – 错误:调用'(const std :: basic_string)()’不匹配

作者:互联网

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

有什么建议?

解决方法:

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

标签:c,c11,map,stdstring
来源: https://codeday.me/bug/20190825/1715867.html