我在使用 NS-3 API 的某些部分时遇到了一个奇怪的错误。这是我的错误信息:
error: passing ‘const ns3::TopologyReader::Link’ as ‘this’ argument of ‘std::string ns3::TopologyReader::Link::GetAttribute(std::string)’ discards qualifiers
这是导致问题的代码:
TopologyReader::ConstLinksIterator iter;
int num = 0;
for (iter = topologyReader->LinksBegin (); iter != topologyReader->LinksEnd(); iter++, num++)
{
std::istringstream fromName(iter->GetFromNodeName ());
std::istringstream toName (iter->GetToNodeName ());
iter->GetToNodeName();
std::string w = "Weight";
std::string weightAttr = (iter)->GetAttribute(w); // <- error
/* snip */
}
根据TopologyReader::Link 的文档,我认为这可能与它GetAttribute(std::string)
不是函数有关,而其他函数则被声明为函数。但是,我不确定如何解决此问题。const
GetFromNodeName(void)
GetToNodeName(void)
const
编辑:函数签名如图所示(来自链接的文档):
std::string ns3::TopologyReader::Link::GetFromNodeName (void) const
std::string ns3::TopologyReader::Link::GetToNodeName (void) const
std::string ns3::TopologyReader::Link::GetAttribute (std::string name)