假设我有以下内容:
boost::unordered_map< string , someValueType > map;
someValueType& value = map[ "key" ] = someValueType();
最后一行包含:
- 一个临时构造的实例
someValueType
- 将临时分配到新的地图条目中
- 初始化对映射条目的引用
所以如果下一行是:
value.someProperty = 42;
这将尝试更改地图条目对吗?不是原来临时的?
我知道在这种情况下,如果引用不能取临时值,因为它是非 const (所以编译器错误或没有一个会回答我的问题),但如果我将 const 添加到引用声明中,我不是确定在这种情况下评估规则会说什么