STL插入中的C ++ 11编译错误:在RHEL 7.6上 [英] C++11 compilation error in STL insert : on 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屋!