我有一个访问器函数,它返回对类型 (std::map) 的 const 引用 ... ...
myMap_t const& getMap() const {return paramMap;}
该类型有一个重载的[]
运算符。然后以如下方式直接从 getter 函数中使用运算符的语法是什么[]
,但这实际上是有效的。
parameter = contextObj.getMap()[key];
错误信息是:
context.cpp:35: error: passing
'const std::map<
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
float,
std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<
const std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
float> > >'
as 'this' argument of
'_Tp& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&)
with
_Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
_Tp = float,
_Compare = std::less<std::basic_string<char, std::char_traits<char>, td::allocator<char> > >,
_Alloc = std::allocator<std::pair<
const std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
float> >]'
discards qualifiers