STL插入中的C ++ 11编译错误:在RHEL 7.6上 [英] C++11 compilation error in STL insert : on RHEL 7.6

查看:322
本文介绍了STL插入中的C ++ 11编译错误:在RHEL 7.6上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

< small>



下面的函数调用导致RHEL 7.6中带有c ++ 11编译器选项的编译错误。但是使用RHEL 6成功编译。请告诉我这是什么问题。是否在RHEL 7.6和RHEL 6之间更改了STL函数定义和模板。另请建议如何解决此编译错误。



1.功能调用:

-----------------

outputSimArgMap-> insert(std :: make_pair($ 1,(SimArgList *)NULL));





编译错误:

-------------------

错误:没有用于调用'CommHandler :: SimArgMap的匹配函数:: insert(std :: pair< char *,CommHandler :: SimArgList *>)'

outputSimArgMap-> insert(std :: make_pair($ 1,(SimArgList *)NULL));

^

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83:注意:候选人是:

来自/usr/include/c++/4.8.2/map:61:0的文件,来自/ fgw_test / test / NETSim / SimulatorNew / Common / CommHandler / include / SimArgs的
。 h:8,
来自/ fgw_test / test / NETSim / SimulatorNew / Common / CommHandler / src / CliPars的
呃:2:

/usr/include/c++/4.8.2/bits/stl_map.h:594:7:注意:std :: pair< typename std :: _ Rb_tree< _Key, std :: pair< const _Key,_Tp>,std :: _ Select1st< std :: pair< const _Key,_Tp> >,_比较,typename _Alloc :: rebind< std :: pair< const _Key,_Tp> > :: other> :: iterator,bool> std :: map< _Key,_Tp,_Compare,_Alloc> :: insert(const value_type&)[with _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; typename std :: _ Rb_tree< _Key,std :: pair< const _Key,_Tp>,std :: _ Select1st< std :: pair< const _Key,_Tp> >,_比较,typename _Alloc :: rebind< std :: pair< const _Key,_Tp> > :: other> :: iterator = std :: _ Rb_tree_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: value_type = std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >]

insert(const value_type& __x)

^

/usr/include/c++/4.8.2/bits/stl_map。 h:594:7:注意:参数1从'std :: pair< char *,CommHandler :: SimArgList *>'到'const value_type& {aka const std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >&}'

/usr/include/c++/4.8.2/bits/stl_map.h:602:9:注意:模板< class _Pair,class> std :: pair< typename std :: _ Rb_tree< _Key,std :: pair< const _Key,_Tp>,std :: _ Select1st< std :: pair< const _Key,_Tp> >,_比较,typename _Alloc :: rebind< std :: pair< const _Key,_Tp> > :: other> :: iterator,bool> std :: map< _Key,_Tp,_Compare,_Alloc> :: insert(_Pair&&)[with _Pair = _Pair; <模板参数-2-2> =< template-parameter-1-2> ;; _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(_Pair&& __x)

^

/usr/include/c++/4.8.2/bits/stl_map .h:602:9:注意:模板参数扣除/替换失败:

/usr/include/c++/4.8.2/bits/stl_map.h:598:32:错误:没有命名的类型'struct std :: enable_if< false,void>'中的'type''

模板< typename _Pair,typename = typename

^

/ usr / include / c ++ / 4.8.2 / bits / stl_map.h:615:7:注意:void std :: map< _Key,_Tp,_Compare,_ Alloc> :: insert(std :: initializer_list< std :: pair< const _Key,_Tp>>)[with _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(std :: initializer_list< value_type> __list)

^

/usr/include/c++/4.8.2/ bits / stl_map.h:615:7:注意:参数1从'std :: pair< char *,CommHandler :: SimArgList *>'到'std :: initializer_list< std :: pair< const std没有已知的转换:: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >'

/usr/include/c++/4.8.2/bits/stl_map.h:644:7:注意:std :: map< _Key,_Tp,_Compare,_Alloc> :: iterator std :: map< _Key,_Tp,_Compare,_ Alloc> :: insert(std :: map< _Key,_Tp,_Compare,_Alloc> :: const_iterator,const value_type&)[with _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: iterator = std :: _ Rb_tree_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: const_iterator = std :: _ Rb_tree_const_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: value_type = std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >]

insert(const_iterator __position,const value_type& __x)

^

/usr/include/c++/4.8.2/bits /stl_map.h:644:7:注意:候选人需要2个参数,1个提供

/usr/include/c++/4.8.2/bits/stl_map.h:655:9:注意:模板< ; class _Pair,class> std :: map< _Key,_Tp,_Compare,_Alloc> :: iterator std :: map< _Key,_Tp,_Compare,_ Alloc> :: insert(std :: map< _Key,_Tp,_Compare,_Alloc> :: const_iterator, _Pair&&)[与_Pair = _Pair; <模板参数-2-2> =< template-parameter-1-2> ;; _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(const_iterator __position,_Pair&& __x)

^

/usr/include/c++/4.8.2/ bits / stl_map.h:655:9:注意:模板参数扣除/替换失败:

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83:注意:无法转换'std :: make_pair< char *&,CommHandler :: SimArgList *>((*& yyvsp-> YYSTYPE :: name),(*& 0u))'''type'std: :pair< char *,CommHandler :: SimArgList *>')键入'std :: map< std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList>,ci_compare> :: const_iterator {aka std :: _ Rb_tree_const_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >}'

outputSimArgMap-> insert(std :: make_pair($ 1,(SimArgList *)NULL));

^

来自/usr/include/c++/4.8.2/map:61:0的文件,来自/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:8的


来自/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:

/usr/include/c++/4.8.2/ bits / stl_map.h:670:9:注意:template< class _InputIterator> void std :: map< _Key,_Tp,_Compare,_Alloc> :: insert(_InputIterator,_InputIterator)[with _InputIterator = _InputIterator; _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(_InputIterator __first,_InputIterator __last)

^

/usr/include/c++/4.8.2/bits/stl_map .h:670:9:注意:模板参数扣除/替换失败:

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83:注意:候选人需要2个参数,1个提供

outputSimArgMap-> insert(std :: make_pair($ 1,(SimArgList *)NULL));





2.)



函数调用:

----------- -----



文件CliParser.y - >



GetIntegralHelper SimArgMap :: getArgument( const std :: string& varName,bool必需,bool eraseElem)

{

auto it = find(varName);

if(it != end())

{

if(it-> second == NULL)

throw std :: invalid_argument( varName +:未提供值);

尝试

{

if(eraseElem)

{

std :: string ret = std :: move(it-> second-> getElemValue()。getArgString());

erase(it);

第263行 - >返回ret;

}







文件SimArgs.h - > ;



class GetIntegralHelper

{

std :: string m_str;

第53行 - > GetIntegralHelper(std :: string&& str):m_str(str){}



编译错误:

----- -----------------



在成员函数'CommHandler :: GetIntegralHelper CommHandler :: SimArgMap :: getArgument(const) string&,bool,bool)':

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:263:24:错误:无法绑定'std :: string { aka std :: basic_string< char>}'左值'到'std :: string&& {aka std :: basic_string< char>&&}'

返回ret;

^

来自/ fgw_test /的文件test / NETSim / SimulatorNew / Common / CommHandler / src / CliParser.y:2:0:

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:53:3 :error:初始化'CommHandler :: GetIntegralHelper :: GetIntegralHelper(std :: string&&)的参数1'

GetIntegralHelper(std :: string&& str):m_str(str){ }

^



3.)



函数调用:

---------------





File CliParser.y - >



GetListHelper SimArgMap :: getArgumentList(const std :: string& varName,bool必需,bool eraseElem)

{

auto it = find(varName);

if(it!= end())

{

if(eraseElem)

{

GetListHelper ret(std :: move(* it-> second),varName);

erase(它);

返回ret;

}

其他

{



- >行:294返回GetListHelper(* it-> second,varName);





文件SimArgs.h - >



class GetListHelper

{

SimArgList m_list;

const std :: string& m_varName;

行:81-> GetListHelper(SimArgList&& list,const std :: string& varName):m_list(std :: move(list)),m_varName(varName){}





编译错误:

-------------------



在成员函数'CommHandler :: GetListHelper CommHandler :: SimArgMap :: getArgumentList(const string&,bool,bool)':

/ fgw_test / test / NETSim / SimulatorNew / Common / CommHandler /src/CliParser.y:294:45:错误:无法将'CommHandler :: SimArgList'左值绑定到'CommHandler :: SimArgList&&'

返回GetListHelper(* it-> second, varName);

^

包含在/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:0:

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:81:3:错误:初始化'CommHandler :: GetListHelper :: GetListHelper(CommHandler)的参数1 :: SimArgList&&,const string&)'

GetListHelper(SimArgList&& list,const std :: string& varName):m_list(std :: move(list)),m_varName(varName){}

^



谢谢,< /小>



我尝试过:



< small>使用c ++ 11选项在RHEL 7.6上进行C ++代码编译< / small>

<small>Hi,

Below function calls are resulting in compilation errors in RHEL 7.6 with c++11 compiler option. But compiles successfully with RHEL 6. Please let me know what's the issue. Whether STL function definitions and templates has changed between RHEL 7.6 and RHEL 6 .Also please suggest how to resolve this compilation errors.

1. Funcation call:
-----------------
outputSimArgMap->insert(std::make_pair($1, (SimArgList*) NULL));


Compilation error :
-------------------
error: no matching function for call to ‘CommHandler::SimArgMap::insert(std::pair<char*, CommHandler::SimArgList*>)’
outputSimArgMap->insert(std::make_pair($1, (SimArgList*) NULL));
^
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83: note: candidates are:
In file included from /usr/include/c++/4.8.2/map:61:0,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:8,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:
/usr/include/c++/4.8.2/bits/stl_map.h:594:7: note: std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> >]
insert(const value_type& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:594:7: note: no known conversion for argument 1 from ‘std::pair<char*, CommHandler::SimArgList*>’ to ‘const value_type& {aka const std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> >&}’
/usr/include/c++/4.8.2/bits/stl_map.h:602:9: note: template<class _Pair, class> std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(_Pair&& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:602:9: note: template argument deduction/substitution failed:
/usr/include/c++/4.8.2/bits/stl_map.h:598:32: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
template<typename _Pair, typename = typename
^
/usr/include/c++/4.8.2/bits/stl_map.h:615:7: note: void std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(std::initializer_list<value_type> __list)
^
/usr/include/c++/4.8.2/bits/stl_map.h:615:7: note: no known conversion for argument 1 from ‘std::pair<char*, CommHandler::SimArgList*>’ to ‘std::initializer_list<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >’
/usr/include/c++/4.8.2/bits/stl_map.h:644:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> >]
insert(const_iterator __position, const value_type& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:644:7: note: candidate expects 2 arguments, 1 provided
/usr/include/c++/4.8.2/bits/stl_map.h:655:9: note: template<class _Pair, class> std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(const_iterator __position, _Pair&& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:655:9: note: template argument deduction/substitution failed:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83: note: cannot convert ‘std::make_pair<char*&, CommHandler::SimArgList*>((* & yyvsp->YYSTYPE::name), (* &0u))’ (type ‘std::pair<char*, CommHandler::SimArgList*>’) to type ‘std::map<std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList>, ci_compare>::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >}’
outputSimArgMap->insert(std::make_pair($1, (SimArgList*) NULL));
^
In file included from /usr/include/c++/4.8.2/map:61:0,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:8,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:
/usr/include/c++/4.8.2/bits/stl_map.h:670:9: note: template<class _InputIterator> void std::map<_Key, _Tp, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(_InputIterator __first, _InputIterator __last)
^
/usr/include/c++/4.8.2/bits/stl_map.h:670:9: note: template argument deduction/substitution failed:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83: note: candidate expects 2 arguments, 1 provided
outputSimArgMap->insert(std::make_pair($1, (SimArgList*) NULL));


2.)

Function call:
----------------

File CliParser.y ->

GetIntegralHelper SimArgMap::getArgument(const std::string& varName, bool mandatory, bool eraseElem)
{
auto it = find(varName);
if(it != end())
{
if(it->second == NULL)
throw std::invalid_argument(varName+": value not provided");
try
{
if(eraseElem)
{
std::string ret = std::move(it->second->getElemValue().getArgString());
erase(it);
Line 263 -> return ret;
}



File SimArgs.h ->

class GetIntegralHelper
{
std::string m_str;
Line 53 -> GetIntegralHelper(std::string&& str) : m_str(str) {}

Compilation Error :
----------------------

In member function ‘CommHandler::GetIntegralHelper CommHandler::SimArgMap::getArgument(const string&, bool, bool)’:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:263:24: error: cannot bind ‘std::string {aka std::basic_string<char>}’ lvalue to ‘std::string&& {aka std::basic_string<char>&&}’
return ret;
^
In file included from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:0:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:53:3: error: initializing argument 1 of ‘CommHandler::GetIntegralHelper::GetIntegralHelper(std::string&&)’
GetIntegralHelper(std::string&& str) : m_str(str) {}
^

3.)

Function call:
---------------


File CliParser.y ->

GetListHelper SimArgMap::getArgumentList(const std::string& varName, bool mandatory, bool eraseElem)
{
auto it = find(varName);
if(it != end())
{
if(eraseElem)
{
GetListHelper ret(std::move(*it->second), varName);
erase(it);
return ret;
}
else
{

-> Line :294 return GetListHelper(*it->second, varName);


File SimArgs.h ->

class GetListHelper
{
SimArgList m_list;
const std::string& m_varName;
Line :81-> GetListHelper(SimArgList&& list, const std::string& varName) : m_list(std::move(list)), m_varName(varName) {}


Compilation Error:
-------------------

In member function ‘CommHandler::GetListHelper CommHandler::SimArgMap::getArgumentList(const string&, bool, bool)’:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:294:45: error: cannot bind ‘CommHandler::SimArgList’ lvalue to ‘CommHandler::SimArgList&&’
return GetListHelper(*it->second, varName);
^
In file included from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:0:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:81:3: error: initializing argument 1 of ‘CommHandler::GetListHelper::GetListHelper(CommHandler::SimArgList&&, const string&)’
GetListHelper(SimArgList&& list, const std::string& varName) : m_list(std::move(list)), m_varName(varName) {}
^

Thanks,</small>

What I have tried:

<small>C++ code compilation on RHEL 7.6 using c++11 option</small>

推荐答案

1,(SimArgList *)NULL));





编译错误:

-------------------

错误:没有匹配函数来调用'CommHandler :: SimArgMap :: insert(std :: pair< char *,CommHandler :: SimArgList *>)'

outputSimArgMap-> ; insert(std :: make_pair(
1, (SimArgList*) NULL));


Compilation error :
-------------------
error: no matching function for call to ‘CommHandler::SimArgMap::insert(std::pair<char*, CommHandler::SimArgList*>)’
outputSimArgMap->insert(std::make_pair(


1,(SimArgList *)NULL));

^

/ fgw_test / test /NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83:注意:候选人是:

来自/usr/include/c++/4.8.2/map的文件: 61:0,

来自/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:8,
来自/ fgw_test / test / NETSim /的
SimulatorNew / Common / CommHandler / src / CliParser.y:2:

/usr/include/c++/4.8.2/bits/stl_map.h:594:7:注意:std :: pair< typename std :: _ Rb_tree< _Key,std :: pair< const _Key,_Tp>,std :: _ Select1st< std :: pair< const _Key,_Tp> >,_比较,typename _Alloc :: rebind< std :: pair< const _Key,_Tp> > :: other> :: iterator,bool> std :: map< _Key,_Tp,_Compare,_Alloc> :: insert(const value_type&)[with _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; typename std :: _ Rb_tree< _Key,std :: pair< const _Key,_Tp>,std :: _ Select1st< std :: pair< const _Key,_Tp> >,_比较,typename _Alloc :: rebind< std :: pair< const _Key,_Tp> > :: other> :: iterator = std :: _ Rb_tree_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: value_type = std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >]

insert(const value_type& __x)

^

/usr/include/c++/4.8.2/bits/stl_map。 h:594:7:注意:参数1从'std :: pair< char *,CommHandler :: SimArgList *>'到'const value_type& {aka const std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >&}'

/usr/include/c++/4.8.2/bits/stl_map.h:602:9:注意:模板< class _Pair,class> std :: pair< typename std :: _ Rb_tree< _Key,std :: pair< const _Key,_Tp>,std :: _ Select1st< std :: pair< const _Key,_Tp> >,_比较,typename _Alloc :: rebind< std :: pair< const _Key,_Tp> > :: other> :: iterator,bool> std :: map< _Key,_Tp,_Compare,_Alloc> :: insert(_Pair&&)[with _Pair = _Pair; <模板参数-2-2> =< template-parameter-1-2> ;; _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(_Pair&& __x)

^

/usr/include/c++/4.8.2/bits/stl_map .h:602:9:注意:模板参数扣除/替换失败:

/usr/include/c++/4.8.2/bits/stl_map.h:598:32:错误:没有命名的类型'struct std :: enable_if< false,void>'中的'type''

模板< typename _Pair,typename = typename

^

/ usr / include / c ++ / 4.8.2 / bits / stl_map.h:615:7:注意:void std :: map< _Key,_Tp,_Compare,_ Alloc> :: insert(std :: initializer_list< std :: pair< const _Key,_Tp>>)[with _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(std :: initializer_list< value_type> __list)

^

/usr/include/c++/4.8.2/ bits / stl_map.h:615:7:注意:参数1从'std :: pair< char *,CommHandler :: SimArgList *>'到'std :: initializer_list< std :: pair< const std没有已知的转换:: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >'

/usr/include/c++/4.8.2/bits/stl_map.h:644:7:注意:std :: map< _Key,_Tp,_Compare,_Alloc> :: iterator std :: map< _Key,_Tp,_Compare,_ Alloc> :: insert(std :: map< _Key,_Tp,_Compare,_Alloc> :: const_iterator,const value_type&)[with _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: iterator = std :: _ Rb_tree_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: const_iterator = std :: _ Rb_tree_const_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >取代; std :: map< _Key,_Tp,_Compare,_Alloc> :: value_type = std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> >]

insert(const_iterator __position,const value_type& __x)

^

/usr/include/c++/4.8.2/bits /stl_map.h:644:7:注意:候选人需要2个参数,1个提供

/usr/include/c++/4.8.2/bits/stl_map.h:655:9:注意:模板< ; class _Pair,class> std :: map< _Key,_Tp,_Compare,_Alloc> :: iterator std :: map< _Key,_Tp,_Compare,_ Alloc> :: insert(std :: map< _Key,_Tp,_Compare,_Alloc> :: const_iterator, _Pair&&)[与_Pair = _Pair; <模板参数-2-2> =< template-parameter-1-2> ;; _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(const_iterator __position,_Pair&& __x)

^

/usr/include/c++/4.8.2/ bits / stl_map.h:655:9:注意:模板参数扣除/替换失败:

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83:注意:无法转换'std :: make_pair< char *&,CommHandler :: SimArgList *>((*& yyvsp-> YYSTYPE :: name),(*& 0u))'''type'std: :pair< char *,CommHandler :: SimArgList *>')键入'std :: map< std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList>,ci_compare> :: const_iterator {aka std :: _ Rb_tree_const_iterator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >}'

outputSimArgMap-> insert(std :: make_pair(
1, (SimArgList*) NULL));
^
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83: note: candidates are:
In file included from /usr/include/c++/4.8.2/map:61:0,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:8,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:
/usr/include/c++/4.8.2/bits/stl_map.h:594:7: note: std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> >]
insert(const value_type& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:594:7: note: no known conversion for argument 1 from ‘std::pair<char*, CommHandler::SimArgList*>’ to ‘const value_type& {aka const std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> >&}’
/usr/include/c++/4.8.2/bits/stl_map.h:602:9: note: template<class _Pair, class> std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(_Pair&& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:602:9: note: template argument deduction/substitution failed:
/usr/include/c++/4.8.2/bits/stl_map.h:598:32: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
template<typename _Pair, typename = typename
^
/usr/include/c++/4.8.2/bits/stl_map.h:615:7: note: void std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(std::initializer_list<value_type> __list)
^
/usr/include/c++/4.8.2/bits/stl_map.h:615:7: note: no known conversion for argument 1 from ‘std::pair<char*, CommHandler::SimArgList*>’ to ‘std::initializer_list<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >’
/usr/include/c++/4.8.2/bits/stl_map.h:644:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> >]
insert(const_iterator __position, const value_type& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:644:7: note: candidate expects 2 arguments, 1 provided
/usr/include/c++/4.8.2/bits/stl_map.h:655:9: note: template<class _Pair, class> std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(const_iterator __position, _Pair&& __x)
^
/usr/include/c++/4.8.2/bits/stl_map.h:655:9: note: template argument deduction/substitution failed:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83: note: cannot convert ‘std::make_pair<char*&, CommHandler::SimArgList*>((* & yyvsp->YYSTYPE::name), (* &0u))’ (type ‘std::pair<char*, CommHandler::SimArgList*>’) to type ‘std::map<std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList>, ci_compare>::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >}’
outputSimArgMap->insert(std::make_pair(


1,(SimArgList *)NULL));

^

来自/usr/include/c++/4.8.2/map:61:0的文件,

来自/ fgw_test / test / NETSim / SimulatorNew / Common / CommHandler / include / SimArgs.h:8,

来自/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:

/usr/include/c++/4.8.2/bits/stl_map.h:670:9:注意:template< class _InputIterator> void std :: map< _Key,_Tp,_Compare,_Alloc> :: insert(_InputIterator,_InputIterator)[with _InputIterator = _InputIterator; _Key = std :: basic_string< char> ;; _Tp = std :: shared_ptr< CommHandler :: SimArgList> ;; _Compare = ci_compare; _Alloc = std :: allocator< std :: pair< const std :: basic_string< char> ;,std :: shared_ptr< CommHandler :: SimArgList> > >]

insert(_InputIterator __first,_InputIterator __last)

^

/usr/include/c++/4.8.2/bits/stl_map .h:670:9:注意:模板参数扣除/替换失败:

/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83:注意:候选人需要2个参数,1个提供

outputSimArgMap-> insert(std :: make_pair(
1, (SimArgList*) NULL));
^
In file included from /usr/include/c++/4.8.2/map:61:0,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/include/SimArgs.h:8,
from /fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:2:
/usr/include/c++/4.8.2/bits/stl_map.h:670:9: note: template<class _InputIterator> void std::map<_Key, _Tp, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::basic_string<char>; _Tp = std::shared_ptr<CommHandler::SimArgList>; _Compare = ci_compare; _Alloc = std::allocator<std::pair<const std::basic_string<char>, std::shared_ptr<CommHandler::SimArgList> > >]
insert(_InputIterator __first, _InputIterator __last)
^
/usr/include/c++/4.8.2/bits/stl_map.h:670:9: note: template argument deduction/substitution failed:
/fgw_test/test/NETSim/SimulatorNew/Common/CommHandler/src/CliParser.y:74:83: note: candidate expects 2 arguments, 1 provided
outputSimArgMap->insert(std::make_pair(


这篇关于STL插入中的C ++ 11编译错误:在RHEL 7.6上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆