【发布时间】:2021-09-25 19:12:01
【问题描述】:
void foo( const std::unordered_map<char, int> & m )
{
using M = std::remove_const< decltype( m ) >;
M mutable_map;
mutable_map['a'] = 42;
}
这会失败并显示“与 operator[] 不匹配”。在我的实际代码中,我将地图放在std::pair 中,并且错误消息更清晰:“将const std::unordered_map<...> 传递为this 丢弃限定符”。
怎么了?我不能使用const_cast<>(),因为我不知道类型(地图模板参数)。
【问题讨论】:
标签: constants c++20 unordered-map