NS-3APIの一部で奇妙なエラーが発生します。これが私のエラーメッセージです:
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)