Я получаю странную ошибку с частями API NS-3. Вот мое сообщение об ошибке:Передача 'const Link' как 'this' аргумент 'std :: string GetAttribute (std :: string)' отбрасывает квалификаторы
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 */
}
Я думаю, что это, возможно, придется делать с тем фактом, что GetAttribute(std::string)
не является const
функции, в соответствии с documentation for TopologyReader::Link, в то время как другие функции, GetFromNodeName(void)
и GetToNodeName(void)
объявлены как функции const
. Однако я не уверен, как решить эту проблему.
Edit: Подписи функции являются, как показано (из связанной документации):
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)
Ooops. Я пропустил это, извините. Вы можете сообщить об этом как об ошибке. Это похоже на одно. –