我注意到QMap::operator[](const Key & key)
有这两个重载:
T & QMap::operator[](const Key & key)
const T QMap::operator[](const Key & key) const
是否有按价值返回的理由?
由于我们有移动语义:
当按值返回时,我们应该按 const 值返回吗?
我问的原因是这样的:
想象一下我们有:
class ExpensiveToCopy;
{
public:
int someProperty() const;
...
}
void f(const QMap<int, ExpensiveToCopy>& map)
{
int lala = map[4].someProperty(); // We need to copy the entire object
// just to look at someProperty();
}