【发布时间】:2015-08-29 12:04:51
【问题描述】:
std::string 访问器(back、front、at 和 operator[])具有const 和非const 重载,如下所示:
char& x();
const char& x() const;
为什么第二个版本返回 const 引用,而不是简单地返回 char 按值(作为副本)?
根据rules of thumb on how to pass objects around,不用修改原来的小对象不应该传值吗?
【问题讨论】:
-
一个词:一致性(例如
std::vector)。 -
为什么它的语义应该与非常量版本不同?
标签: c++ c++11 stl language-design stdstring