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