The std::string
accessors (back
, front
, at
, and operator[]
) have const
and non-const
overloads, as below:
char& x();
const char& x() const;
Why does the second version return a const
reference, as opposed to simply returning the char
by value (as a copy)?
According to the rules of thumb on how to pass objects around, shouldn't small objects be passed by value when there's no need to modify the original?