错误:没有匹配函数来调用'std :: list <wire,std :: allocator <wire =“”>&gt; :: insert(std :: _ List_const_iterator <wire>&amp;,Wire&amp;)'

时间:2015-12-04 16:53:13

标签: c++ c++11

if (iter->tokenType==Token::NAME && wstate==WIRE)
{
   wstate=WIRENAME;
   Wire tempwire;
   tempwire.Name=iter->token;
   tempwire.width=bus_msb;
   std::list<Wire>::const_iterator witer = LargestWireName(tempwire,tempModule.wires);
   if (witer!=tempModule.wires.end())
   {
       tempModule.wires.insert(witer,tempwire);
   }
   else
   {
       tempModule.wires.push_back(tempwire);
   }
}

当我尝试调用导线的插入功能时,我收到此错误...

错误:没有匹配函数来调用‘std::list<Wire, std::allocator<Wire> >::insert(std::_List_const_iterator<Wire>&, Wire&)’

任何人都可以帮忙吗?请

1 个答案:

答案 0 :(得分:1)

您正在使用std::list::insert之外的c ++ 11签名和不是c ++ 11的编译器。 在c ++ 11之前你应该有

std::list<Wire>::iterator witer;

而不是

std::list<Wire>::const_iterator witer

如果代码是c ++ 11,请确保编译器兼容并启用了该功能。由于错误消息格式,我假设这是gcc。因此,在构建命令中使用-std=c++11