我有以下代码:
std::map<
const CosTransactions::otid_t,
std::pair<
CosTransactions::otid_t,
CosTransactions::Coordinator_ptr>,
otid_t_less> XID_Broker_impl::cache;
编译上面的代码时,我收到如下错误:
D:/Y24\usr\include/xmemory", line 144: error(483): function
"std::allocator<_Ty>::address(std::_Allocator_base<_Ty>::value_type
&) const [with _Ty=const CosTransactions::otid_t]" has already been
declared
detected during:
instantiation of class
我使用的是HP-Nonstop C ++编译器?当我删除地图中键的“常量”时,错误消失了。这是否意味着我不能在地图中使用“const key”? 请帮我解决这个问题
答案 0 :(得分:1)
从C ++11§23.3.1类模板映射
For a map<Key,T> the key_type is Key and the value_type is pair <const Key,T>
请注意,根据定义,密钥类型为const
,这意味着您不应再次将密钥类型声明为const
。